Go to file
Jerin Jacob 7146aa19ac ethdev: introduce lock-free Tx queue capability
Introducing the DEV_TX_OFFLOAD_MT_LOCKFREE TX capability flag.
if a PMD advertises DEV_TX_OFFLOAD_MT_LOCKFREE capable, multiple threads
can invoke rte_eth_tx_burst() concurrently on the same tx queue without
SW lock. This PMD feature will be useful in the following use cases and
found in the OCTEON family of NPUs.

1) Remove explicit spinlock in some applications where lcores
to TX queues are not mapped 1:1.
example: OVS has such instance
https://github.com/openvswitch/ovs/blob/master/lib/netdev-dpdk.c#L299
https://github.com/openvswitch/ovs/blob/master/lib/netdev-dpdk.c#L1859
See the the usage of tx_lock spinlock.

2) In the eventdev use case, avoid dedicating a separate TX core for
transmitting and thus enables more scaling as all workers can
send the packets.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
2017-07-18 15:32:55 +03:00
app app/testpmd: remove duplicate includes 2017-07-16 17:30:24 +02:00
buildtools mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
config config: enable virtual IOVA by default for DPAA2 2017-07-14 15:58:57 +02:00
devtools update Cavium Inc copyright headers 2017-07-08 17:43:49 +02:00
doc ethdev: introduce lock-free Tx queue capability 2017-07-18 15:32:55 +03:00
drivers event/sw: add service capability 2017-07-16 20:38:21 +02:00
examples examples: remove duplicate includes 2017-07-16 17:30:25 +02:00
lib ethdev: introduce lock-free Tx queue capability 2017-07-18 15:32:55 +03:00
mk net/thunderx: remove libm dependency 2017-07-10 16:50:46 +02:00
pkg version: 17.05.0 2017-05-11 03:11:34 +02:00
test service: add unit tests 2017-07-16 20:35:56 +02:00
usertools update Cavium Inc copyright headers 2017-07-08 17:43:49 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore devtools: add tags and cscope index generation 2017-04-30 12:57:04 +02:00
GNUmakefile mk: do not build tests by default 2017-02-28 16:04:18 +01:00
LICENSE.GPL doc: GPL/LGPL licenses 2013-07-25 14:43:06 +02:00
LICENSE.LGPL doc: fix file format (dos to unix) 2013-09-06 11:43:07 +02:00
MAINTAINERS service: add unit tests 2017-07-16 20:35:56 +02:00
Makefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00
README doc: add readme file 2015-12-13 22:06:58 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD license for the core libraries and
drivers. The kernel components are GPLv2 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org