numam-dpdk/app
Stephen Hemminger 9667d97c25 pflock: add phase-fair reader writer locks
This is a new type of reader-writer lock that provides better fairness
guarantees which better suited for typical DPDK applications.
A pflock has two ticket pools, one for readers and one
for writers.

Phase-fair reader writer locks ensure that neither reader nor writer will
be starved.
Neither reader or writer are preferred, they execute in alternating
phases.
All operations of the same type (reader or writer) that acquire the lock
are handled in FIFO order.
Write operations are exclusive, and multiple read operations can be run
together (until a write arrives).

A similar implementation is in Concurrency Kit package in FreeBSD.
For more information see:
   "Reader-Writer Synchronization for Shared-Memory Multiprocessor
    Real-Time Systems",
    http://www.cs.unc.edu/~anderson/papers/ecrts09b.pdf

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2021-04-14 21:59:47 +02:00
..
pdump pdump: free mbuf in bulk 2021-01-19 15:24:46 +01:00
proc-info app/procinfo: fix security context info 2021-01-26 14:07:24 +01:00
test pflock: add phase-fair reader writer locks 2021-04-14 21:59:47 +02:00
test-acl eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test-bbdev app/bbdev: dequeue full ring in offload test 2020-11-02 09:24:41 +01:00
test-cmdline cmdline: avoid name clash with Windows system types 2020-11-05 17:49:00 +01:00
test-compress-perf app: fix exit messages 2021-04-09 14:31:29 +02:00
test-crypto-perf app: fix exit messages 2021-04-09 14:31:29 +02:00
test-eventdev app/eventdev: add vector mode in pipeline test 2021-04-12 09:23:34 +02:00
test-fib fix spellings that Lintian complains about 2020-11-04 20:11:31 +01:00
test-flow-perf app/flow-perf: fix encap/decap actions 2021-04-12 16:30:50 +02:00
test-pipeline eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test-pmd app/testpmd: support NVGRE encap as sample action 2021-04-08 01:09:24 +02:00
test-regex app/regex: fix usage text 2021-04-09 14:31:41 +02:00
test-sad eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
meson.build build: detect execinfo library on Linux 2021-03-23 08:41:05 +01:00