numam-dpdk/lib
Konstantin Ananyev e6ba4731c0 ring: introduce RTS ring mode
Introduce relaxed tail sync (RTS) mode for MT ring synchronization.
Aim to reduce stall times in case when ring is used on
overcommited cpus (multiple active threads on the same cpu).
The main difference from original MP/MC algorithm is that
tail value is increased not by every thread that finished enqueue/dequeue,
but only by the last one.
That allows threads to avoid spinning on ring tail value,
leaving actual tail value change to the last thread in the update queue.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
2020-04-21 12:52:55 +02:00
..
librte_acl replace alignment attributes 2020-04-16 18:16:18 +02:00
librte_bbdev build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_bitratestats build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_bpf build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_cfgfile eal: move common header files 2020-03-31 13:08:55 +02:00
librte_cmdline replace unused attributes 2020-04-16 18:30:58 +02:00
librte_compressdev build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_cryptodev build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_distributor build: add global libatomic dependency for 32-bit clang 2020-04-21 11:34:09 +02:00
librte_eal eal/ppc: fix build 2020-04-17 17:45:20 +02:00
librte_efd replace packed attributes 2020-04-16 18:16:46 +02:00
librte_ethdev replace alignment attributes 2020-04-16 18:16:18 +02:00
librte_eventdev build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_fib build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_flow_classify build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_gro build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_gso build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_hash replace alignment attributes 2020-04-16 18:16:18 +02:00
librte_ip_frag replace packed attributes 2020-04-16 18:16:46 +02:00
librte_ipsec replace packed attributes 2020-04-16 18:16:46 +02:00
librte_jobstats build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_kni kni: fix not contiguous FIFO 2020-02-14 11:59:01 +01:00
librte_kvargs eal: move common header files 2020-03-31 13:08:55 +02:00
librte_latencystats latency: fix calculation for multi-thread 2020-01-20 01:32:50 +01:00
librte_lpm lpm6: make IPv6 address immutable 2020-03-31 21:45:43 +02:00
librte_mbuf replace unused attributes 2020-04-16 18:30:58 +02:00
librte_member build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_mempool build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_meter meter: remove experimental flag from RFC4115 trTCM API 2020-01-20 16:37:27 +01:00
librte_metrics build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_net replace packed attributes 2020-04-16 18:16:46 +02:00
librte_pci pci: fix build on ppc 2020-03-17 14:53:48 +01:00
librte_pdump ring: prepare ring to allow new sync schemes 2020-04-21 11:34:09 +02:00
librte_pipeline replace packed attributes 2020-04-16 18:16:46 +02:00
librte_port ring: prepare ring to allow new sync schemes 2020-04-21 11:34:09 +02:00
librte_power replace unused attributes 2020-04-16 18:30:58 +02:00
librte_rawdev build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_rcu build: add global libatomic dependency for 32-bit clang 2020-04-21 11:34:09 +02:00
librte_reorder build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_rib build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_ring ring: introduce RTS ring mode 2020-04-21 12:52:55 +02:00
librte_sched replace alignment attributes 2020-04-16 18:16:18 +02:00
librte_security security: add CPU crypto action type 2020-02-05 15:29:49 +01:00
librte_stack build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_table eal: fix compiler detection in public headers 2020-03-18 00:59:17 +01:00
librte_telemetry build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_timer build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
librte_vhost replace packed attributes 2020-04-16 18:16:46 +02:00
Makefile ipsec: fix build dependency on hash lib 2020-04-16 14:06:03 +02:00
meson.build build: disable experimental API check internally 2020-04-14 16:22:34 +02:00