]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
selftests/bpf: Add test for early update in prog_array_map_poke_run
authorJiri Olsa <jolsa@kernel.org>
Wed, 6 Dec 2023 08:30:41 +0000 (09:30 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 6 Dec 2023 21:40:43 +0000 (22:40 +0100)
commitffed24eff9e0e52d8e74df1c18db8ed43b4666e6
tree7c0495e6f3bd9983db78a626ca27cb07f3b4cf25
parent4b7de801606e504e69689df71475d27e35336fb3
selftests/bpf: Add test for early update in prog_array_map_poke_run

Adding test that tries to trigger the BUG_IN during early map update
in prog_array_map_poke_run function.

The idea is to share prog array map between thread that constantly
updates it and another one loading a program that uses that prog
array.

Eventually we will hit a place where the program is ok to be updated
(poke->tailcall_target_stable check) but the address is still not
registered in kallsyms, so the bpf_arch_text_poke returns -EINVAL
and cause imbalance for the next tail call update check, which will
fail with -EBUSY in bpf_arch_text_poke as described in previous fix.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
Link: https://lore.kernel.org/bpf/20231206083041.1306660-3-jolsa@kernel.org
tools/testing/selftests/bpf/prog_tests/tailcalls.c
tools/testing/selftests/bpf/progs/tailcall_poke.c [new file with mode: 0644]