linux/tools
Martin KaFai Lau 47ada65c5c selftests/bpf: Add tests for bpf_rbtree_{root,left,right}
This patch has a much simplified rbtree usage from the
kernel sch_fq qdisc. It has a "struct node_data" which can be
added to two different rbtrees which are ordered by different keys.

The test first populates both rbtrees. Then search for a lookup_key
from the "groot0" rbtree. Once the lookup_key is found, that node
refcount is taken. The node is then removed from another "groot1"
rbtree.

While searching the lookup_key, the test will also try to remove
all rbnodes in the path leading to the lookup_key.

The test_{root,left,right}_spinlock_true tests ensure that the
return value of the bpf_rbtree functions is a non_own_ref node pointer.
This is done by forcing an verifier error by calling a helper
bpf_jiffies64() while holding the spinlock. The tests then
check for the verifier message
"call bpf_rbtree...R0=rcu_ptr_or_null_node..."

The other test_{root,left,right}_spinlock_false tests ensure that
they must be called with spinlock held.

Suggested-by: Kumar Kartikeya Dwivedi <memxor@gmail.com> # Check non_own_ref marking
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://lore.kernel.org/r/20250506015857.817950-6-martin.lau@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2025-05-06 10:21:05 -07:00
..
accounting
arch x86/insn: Fix CTEST instruction decoding 2025-04-24 20:19:17 +02:00
bootconfig
bpf bpf-next-6.15 2025-03-30 12:43:03 -07:00
build perf tools changes for v6.15 2025-03-31 08:52:33 -07:00
certs
cgroup
counter
crypto
debugging taint: Add TAINT_FWCTL 2025-03-06 15:13:13 -04:00
firewire
firmware
gpio
hv
iio
include Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf after rc3 2025-04-21 08:04:38 -07:00
kvm/kvm_stat
laptop
leds
lib libbpf: Improve BTF dedup handling of "identical" BTF types 2025-05-05 14:51:47 -07:00
memory-model
mm
net tools: ynl-gen: make sure we validate subtype of array-nest 2025-04-16 18:09:41 -07:00
objtool Rust fixes for v6.15 2025-04-19 10:02:43 -07:00
pcmcia
perf perf tools: Remove evsel__handle_error_quirks() 2025-04-11 09:22:49 -07:00
power Turbostat 2025.05.06 2025-04-06 12:32:43 -07:00
rcu
sched_ext sched_ext: Mark SCX_OPS_HAS_CGROUP_WEIGHT for deprecation 2025-04-08 08:53:52 -10:00
scripts tools headers: Update the syscall table with the kernel sources 2025-04-10 09:28:24 -07:00
sound
spi
testing selftests/bpf: Add tests for bpf_rbtree_{root,left,right} 2025-05-06 10:21:05 -07:00
thermal
time
tracing tracing tooling updates for 6.15: 2025-03-27 17:03:01 -07:00
usb
verification tracing tooling updates for 6.15: 2025-03-27 17:03:01 -07:00
virtio
wmi
workqueue
writeback
Makefile tools/Makefile: Remove pci target 2025-03-08 14:35:32 +00:00