numam-dpdk/lib/librte_ether
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
..
Makefile ethdev: add traffic management API 2017-07-11 19:38:02 +02:00
rte_dev_info.h lib: add missing include dependencies 2016-09-13 15:35:28 +02:00
rte_eth_ctrl.h ethdev: introduce generic flow API 2016-12-23 10:11:07 +01:00
rte_ethdev_pci.h ethdev: fix secondary process crash on unused virtio 2017-07-05 12:10:40 +02:00
rte_ethdev_vdev.h ethdev: remove driver name from device private data 2017-06-12 16:27:44 +01:00
rte_ethdev.c ethdev: fix build with gcc 5.4.0 2017-07-13 11:36:57 +02:00
rte_ethdev.h ethdev: introduce lock-free Tx queue capability 2017-07-18 15:32:55 +03:00
rte_ether_version.map ethdev: add traffic management API 2017-07-11 19:38:02 +02:00
rte_flow_driver.h ethdev: add isolated mode to flow API 2017-06-14 23:33:00 +02:00
rte_flow.c ethdev: add flow rule copy function 2017-07-08 17:55:02 +02:00
rte_flow.h ethdev: fix documentation for fuzzy match 2017-07-08 18:13:10 +02:00
rte_tm_driver.h ethdev: add traffic management API 2017-07-11 19:38:02 +02:00
rte_tm.c ethdev: add traffic management API 2017-07-11 19:38:02 +02:00
rte_tm.h ethdev: add traffic management API 2017-07-11 19:38:02 +02:00