diff options
author | Andrii Nakryiko <andrii@kernel.org> | 2021-10-21 15:59:06 -0700 |
---|---|---|
committer | Andrii Nakryiko <andrii@kernel.org> | 2021-10-21 15:59:35 -0700 |
commit | b0c7663dd5649ef014edc67f7249c65d8f6ec25a (patch) | |
tree | a0f3e9cfb7a844854a681fe0bfb77eb5128b1677 /tools/testing/selftests/bpf/prog_tests/perf_buffer.c | |
parent | 8082b8561dfd889fe943a6888c3b744793e398f3 (diff) | |
parent | 99d099757ab487e0d317c69541b47aaae0b6c431 (diff) |
Merge branch 'selftests/bpf: Fixes for perf_buffer test'
Jiri Olsa says:
====================
hi,
sending fixes for perf_buffer test on systems
with offline cpus.
v2:
- resend due to delivery issues, no changes
thanks,
jirka
Acked-by: John Fastabend <john.fastabend@gmail.com>
====================
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/perf_buffer.c')
-rw-r--r-- | tools/testing/selftests/bpf/prog_tests/perf_buffer.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/perf_buffer.c b/tools/testing/selftests/bpf/prog_tests/perf_buffer.c index 6979aff4aab2..0b0cd045979b 100644 --- a/tools/testing/selftests/bpf/prog_tests/perf_buffer.c +++ b/tools/testing/selftests/bpf/prog_tests/perf_buffer.c @@ -45,7 +45,7 @@ int trigger_on_cpu(int cpu) void serial_test_perf_buffer(void) { - int err, on_len, nr_on_cpus = 0, nr_cpus, i; + int err, on_len, nr_on_cpus = 0, nr_cpus, i, j; struct perf_buffer_opts pb_opts = {}; struct test_perf_buffer *skel; cpu_set_t cpu_seen; @@ -107,19 +107,19 @@ void serial_test_perf_buffer(void) "expect %d, seen %d\n", nr_on_cpus, CPU_COUNT(&cpu_seen))) goto out_free_pb; - if (CHECK(perf_buffer__buffer_cnt(pb) != nr_cpus, "buf_cnt", - "got %zu, expected %d\n", perf_buffer__buffer_cnt(pb), nr_cpus)) + if (CHECK(perf_buffer__buffer_cnt(pb) != nr_on_cpus, "buf_cnt", + "got %zu, expected %d\n", perf_buffer__buffer_cnt(pb), nr_on_cpus)) goto out_close; - for (i = 0; i < nr_cpus; i++) { + for (i = 0, j = 0; i < nr_cpus; i++) { if (i >= on_len || !online[i]) continue; - fd = perf_buffer__buffer_fd(pb, i); + fd = perf_buffer__buffer_fd(pb, j); CHECK(fd < 0 || last_fd == fd, "fd_check", "last fd %d == fd %d\n", last_fd, fd); last_fd = fd; - err = perf_buffer__consume_buffer(pb, i); + err = perf_buffer__consume_buffer(pb, j); if (CHECK(err, "drain_buf", "cpu %d, err %d\n", i, err)) goto out_close; @@ -127,12 +127,13 @@ void serial_test_perf_buffer(void) if (trigger_on_cpu(i)) goto out_close; - err = perf_buffer__consume_buffer(pb, i); - if (CHECK(err, "consume_buf", "cpu %d, err %d\n", i, err)) + err = perf_buffer__consume_buffer(pb, j); + if (CHECK(err, "consume_buf", "cpu %d, err %d\n", j, err)) goto out_close; if (CHECK(!CPU_ISSET(i, &cpu_seen), "cpu_seen", "cpu %d not seen\n", i)) goto out_close; + j++; } out_free_pb: |