numam-dpdk/lib
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
..
librte_acl lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_bitratestats fix typos using codespell utility 2017-06-14 23:54:13 +02:00
librte_cfgfile cfgfile: support empty value 2017-04-04 16:32:06 +02:00
librte_cmdline lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_compat fix typos using codespell utility 2017-06-14 23:54:13 +02:00
librte_cryptodev cryptodev: fix build with icc 2017-07-12 14:40:40 +02:00
librte_distributor lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_eal service: add coremask option -s 2017-07-16 20:34:13 +02:00
librte_efd update Cavium Inc copyright headers 2017-07-08 17:43:49 +02:00
librte_ether ethdev: introduce lock-free Tx queue capability 2017-07-18 15:32:55 +03:00
librte_eventdev update Cavium Inc copyright headers 2017-07-08 17:43:49 +02:00
librte_gro lib/gro: support TCP/IPv4 2017-07-09 18:14:54 +02:00
librte_hash lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_ip_frag ip_frag: check for x86 rather than SSE4 2017-07-04 14:35:41 +02:00
librte_jobstats mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
librte_kni kni: allocate no more mbuf than empty slots in queue 2017-07-01 12:54:51 +02:00
librte_kvargs mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
librte_latencystats latency: fix missing includes in exported header 2017-05-01 00:13:15 +02:00
librte_lpm lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_mbuf mbuf: introduce new Tx offload flag for MPLS-in-UDP 2017-07-06 15:00:57 +02:00
librte_mempool mem: do not advertise physical address when no hugepages 2017-07-04 17:51:22 +02:00
librte_meter mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
librte_metrics metrics: fix out of bound access 2017-06-05 15:30:27 +02:00
librte_net update Cavium Inc copyright headers 2017-07-08 17:43:49 +02:00
librte_pdump pdump: remove unnecessary header include 2017-06-14 23:45:51 +02:00
librte_pipeline mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
librte_port eal: introduce macro for always inline 2017-06-06 17:21:55 +02:00
librte_power mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
librte_reorder fix typos using codespell utility 2017-06-14 23:54:13 +02:00
librte_ring ring: allow non power-of-2 sizes 2017-07-07 09:29:17 +02:00
librte_sched sched: remove check for SSE4 2017-07-04 14:39:18 +02:00
librte_table update Cavium Inc copyright headers 2017-07-08 17:43:49 +02:00
librte_timer lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_vhost vhost: print reason of NUMA node query failure 2017-07-07 02:17:56 +02:00
Makefile lib/gro: add Generic Receive Offload API framework 2017-07-09 18:14:46 +02:00