selftests/bpf: Fix flaky bpf_cookie selftest
authorMykyta Yatsenko <yatsenko@meta.com>
Thu, 25 Sep 2025 21:52:30 +0000 (22:52 +0100)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 25 Sep 2025 22:55:44 +0000 (15:55 -0700)
commit105eb5dc74109a9f53c2f26c9a918d9347a73595
tree69b0c644a233d8834749a235ae8b24885ef64c3f
parent1193c46c1745cf809dead55ece4f3baa728f316c
selftests/bpf: Fix flaky bpf_cookie selftest

bpf_cookie can fail on perf_event_open(), when it runs after the task_work
selftest. The task_work test causes perf to lower
sysctl_perf_event_sample_rate, and bpf_cookie uses sample_freq,
which is validated against that sysctl. As a result,
perf_event_open() rejects the attr if the (now tighter) limit is
exceeded.

>From perf_event_open():
if (attr.freq) {
if (attr.sample_freq > sysctl_perf_event_sample_rate)
return -EINVAL;
} else {
if (attr.sample_period & (1ULL << 63))
return -EINVAL;
}

Switch bpf_cookie to use sample_period, which is not checked against
sysctl_perf_event_sample_rate.

Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20250925215230.265501-1-mykyta.yatsenko5@gmail.com
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c