selftests/bpf: Skip perf hw events test if the setup disabled it
authorHangbin Liu <liuhangbin@gmail.com>
Fri, 17 Jan 2020 10:06:56 +0000 (18:06 +0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 20 Jan 2020 22:26:58 +0000 (23:26 +0100)
The same with commit 4e59afbbed96 ("selftests/bpf: skip nmi test when perf
hw events are disabled"), it would make more sense to skip the
test_stacktrace_build_id_nmi test if the setup (e.g. virtual machines) has
disabled hardware perf events.

Fixes: 13790d1cc72c ("bpf: add selftest for stackmap with build_id in NMI context")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20200117100656.10359-1-liuhangbin@gmail.com
tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c

index 8974450..f002e30 100644 (file)
@@ -49,8 +49,12 @@ retry:
        pmu_fd = syscall(__NR_perf_event_open, &attr, -1 /* pid */,
                         0 /* cpu 0 */, -1 /* group id */,
                         0 /* flags */);
-       if (CHECK(pmu_fd < 0, "perf_event_open",
-                 "err %d errno %d. Does the test host support PERF_COUNT_HW_CPU_CYCLES?\n",
+       if (pmu_fd < 0 && errno == ENOENT) {
+               printf("%s:SKIP:no PERF_COUNT_HW_CPU_CYCLES\n", __func__);
+               test__skip();
+               goto cleanup;
+       }
+       if (CHECK(pmu_fd < 0, "perf_event_open", "err %d errno %d\n",
                  pmu_fd, errno))
                goto cleanup;