OSDN Git Service

selftests/bpf: Add more tests for kptrs in maps
authorKumar Kartikeya Dwivedi <memxor@gmail.com>
Sat, 25 Feb 2023 15:40:10 +0000 (16:40 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 1 Mar 2023 18:24:33 +0000 (10:24 -0800)
commit85521e1ea4d0d7d8e62bbb0999f91e31ae421d76
tree089978f2d94c22c95a9813ce9501ca5b07dc96df
parent9db44fdd8105da00669d425acab887c668df75f6
selftests/bpf: Add more tests for kptrs in maps

Firstly, ensure programs successfully load when using all of the
supported maps. Then, extend existing tests to test more cases at
runtime. We are currently testing both the synchronous freeing of items
and asynchronous destruction when map is freed, but the code needs to be
adjusted a bit to be able to also accomodate support for percpu maps.

We now do a delete on the item (and update for array maps which has a
similar effect for kptrs) to perform a synchronous free of the kptr, and
test destruction both for the synchronous and asynchronous deletion.
Next time the program runs, it should observe the refcount as 1 since
all existing references should have been released by then. By running
the program after both possible paths freeing kptrs, we establish that
they correctly release resources. Next, we augment the existing test to
also test the same code path shared by all local storage maps using a
task local storage map.

Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20230225154010.391965-4-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/map_kptr.c
tools/testing/selftests/bpf/progs/map_kptr.c
tools/testing/selftests/bpf/progs/rcu_tasks_trace_gp.c [new file with mode: 0644]