linux/tools/testing
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
..
crypto/chacha20-s390 crypto: lib/chacha - remove unused arch-specific init support 2025-03-21 17:39:06 +08:00
cxl cxl: Fix devm host device for CXL fwctl initialization 2025-04-18 09:33:04 -07:00
fault-injection
ktest ktest: Fix Test Failures Due to Missing LOG_FILE Directories 2025-03-27 09:34:00 -04:00
kunit move-lib-kunit fix for v6.15-rc4 2025-04-26 08:55:24 -07:00
memblock memblock tests: Fix mutex related build error 2025-04-07 09:28:01 +03:00
nvdimm
radix-tree xarray: add xas_try_split() to split a multi-index entry 2025-03-17 22:06:59 -07:00
rbtree lib/interval_tree: add test case for span iteration 2025-03-17 12:17:01 -07:00
scatterlist
selftests selftests/bpf: Add tests for bpf_rbtree_{root,left,right} 2025-05-06 10:21:05 -07:00
shared test suite: use %zu to print size_t 2025-04-11 17:32:35 -07:00
vma mm: make vma cache SLAB_TYPESAFE_BY_RCU 2025-03-16 22:06:21 -07:00
vsock vsock/test: Add test for SO_LINGER null ptr deref 2025-02-12 20:01:29 -08:00