twx-linux/tools
Hou Tao 73b97bc78b selftests/bpf: Test concurrent updates on bpf_task_storage_busy
Under full preemptible kernel, task local storage lookup operations on
the same CPU may update per-cpu bpf_task_storage_busy concurrently. If
the update of bpf_task_storage_busy is not preemption safe, the final
value of bpf_task_storage_busy may become not-zero forever and
bpf_task_storage_trylock() will always fail. So add a test case to
ensure the update of bpf_task_storage_busy is preemption safe.

Will skip the test case when CONFIG_PREEMPT is disabled, and it can only
reproduce the problem probabilistically. By increasing
TASK_STORAGE_MAP_NR_LOOP and running it under ARM64 VM with 4-cpus, it
takes about four rounds to reproduce:

> test_maps is modified to only run test_task_storage_map_stress_lookup()
$ export TASK_STORAGE_MAP_NR_THREAD=256
$ export TASK_STORAGE_MAP_NR_LOOP=81920
$ export TASK_STORAGE_MAP_PIN_CPU=1
$ time ./test_maps
test_task_storage_map_stress_lookup(135):FAIL:bad bpf_task_storage_busy got -2

real    0m24.743s
user    0m6.772s
sys     0m17.966s

Signed-off-by: Hou Tao <houtao1@huawei.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/r/20220901061938.3789460-5-houtao@huaweicloud.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
2022-09-01 12:16:21 -07:00
..
accounting
arch More from the CPU vulnerability nightmares front: 2022-08-09 09:29:07 -07:00
bootconfig
bpf bpftool: Add support for querying cgroup_iter link 2022-08-30 11:02:03 -07:00
build perf build: Suppress openssl v3 deprecation warnings in libcrypto feature test 2022-08-02 16:32:28 -03:00
certs
cgroup tools: add memcg_shrinker.py 2022-07-03 18:08:40 -07:00
counter
debugging
edid
firewire
firmware
gpio
hv
iio
include bpf: Fix a few typos in BPF helpers documentation 2022-08-26 22:19:31 -07:00
io_uring
kvm/kvm_stat
laptop
leds
lib libbpf: Add GCC support for bpf_tail_call_static 2022-08-31 20:54:23 +02:00
memory-model
objtool This was a moderately busy cycle for documentation, but nothing all that 2022-08-02 19:24:24 -07:00
pci
pcmcia
perf Networking changes for 6.0. 2022-08-03 16:29:08 -07:00
power platform-drivers-x86 for v6.0-1 2022-08-04 18:19:14 -07:00
rcu
scripts
spi
testing selftests/bpf: Test concurrent updates on bpf_task_storage_busy 2022-09-01 12:16:21 -07:00
thermal tools/thermal: Fix possible path truncations 2022-08-03 19:28:46 +02:00
time
tracing rtla: Define syscall numbers for riscv 2022-07-31 17:04:05 -04:00
usb tools: usb: testusb: Add super-plus speed reporting 2022-07-08 14:54:49 +02:00
verification rv/monitor: Add the wwnr monitor 2022-07-30 14:01:30 -04:00
virtio
vm - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe 2022-08-05 16:32:45 -07:00
wmi
Makefile