summaryrefslogtreecommitdiff
path: root/include/linux/debugobjects.h
diff options
context:
space:
mode:
authorEmil Tsalapatis <emil@etsalapatis.com>2026-06-05 18:20:19 -0400
committerAlexei Starovoitov <ast@kernel.org>2026-06-05 20:32:21 -0700
commit57c6ace8395d53b9bae6fb21e0bd3f536342c16e (patch)
treecbc1deadd64f7d3b35ad58f1bc94d957aa2cc117 /include/linux/debugobjects.h
parent6c3e8a4d476521bc33362e90b2569548f1adb7a4 (diff)
selftests/bpf: libarena: Add spmc queue data structure
Expand libarena with a single producer multiple consumer deque data structure. This is a single producer, multiple consumer lockless structure that permits efficient work stealing. The structure is a Lev-Chase queue, so it is lock-free and wait-free. The data structure exposes three main calls. two of them are available to the thread owning the queue and one available to all threads in the program: spmc_owner_push(): Push an item to the top of the queue. spmc_owner_pop(): Pop an item from the top of the queue. spmc_steal(): Steal a thread from the bottom of the queue from any thread. Note that the queue is not really FIFO for all consumers, since non-owners of the queue can only work steal from the bottom. Signed-off-by: Emil Tsalapatis <emil@etsalapatis.com> Link: https://lore.kernel.org/r/20260605222020.5231-3-emil@etsalapatis.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions