linux/tools/include
Eyal Birger f9a80c7ce4 bpf: Clarify BPF_RB_NO_WAKEUP behavior for bpf_ringbuf_discard()
Clarify bpf_ringbuf_discard() documentation for BPF_RB_NO_WAKEUP.

Discarded ring buffer records are still left in the ring buffer and are
only skipped when user space consumes them. This can matter when
BPF_RB_NO_WAKEUP is used: a later submit relying on adaptive wakeup
might not wake the consumer, because the discarded record still needs to
be consumed first.

Scenario:

epoll_wait(rb_fd);                     // blocks

rec = bpf_ringbuf_reserve(&rb, ...);
bpf_ringbuf_discard(rec, BPF_RB_NO_WAKEUP);

rec = bpf_ringbuf_reserve(&rb, ...);
bpf_ringbuf_submit(rec, 0);           // valid record, but no wakeup

Document this in bpf_ringbuf_discard() to make the interaction between
discarded records, user-space consumption, and adaptive wakeups explicit.

Reported-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: Eyal Birger <eyal.birger@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20260331130612.3762433-1-eyal.birger@gmail.com

----

v2: adapt wording per feedback from Andrii.
2026-03-31 15:46:34 -07:00
..
asm tools headers: Import x86 MMIO helper overrides 2025-08-27 12:14:06 -06:00
asm-generic tools headers asm: Sync fls headers header with the kernel sources 2025-11-03 13:35:06 -03:00
generated selftests: vDSO: don't include generated headers for chacha test 2024-09-13 17:28:36 +02:00
io_uring selftests/io_uring: support NO_SQARRAY in miniliburing 2026-01-21 07:55:13 -07:00
linux perf tools fixes for v7.0: 2026-03-13 14:24:15 -07:00
nolibc tools/nolibc: Add fseek() to stdio.h 2026-01-11 12:47:47 +01:00
perf
tools
trace/events
uapi bpf: Clarify BPF_RB_NO_WAKEUP behavior for bpf_ringbuf_discard() 2026-03-31 15:46:34 -07:00
vdso tools headers: Update the linux/unaligned.h copy with the kernel sources 2026-01-14 08:56:41 +01:00