selftests/bpf: Use PERF_COUNT_HW_CPU_CYCLES event for get_branch_snapshot
authorSong Liu <song@kernel.org>
Fri, 7 Apr 2023 19:01:30 +0000 (12:01 -0700)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 7 Apr 2023 22:24:43 +0000 (15:24 -0700)
perf_event with type=PERF_TYPE_RAW and config=0x1b00 turned out to be not
reliable in ensuring LBR is active. Thus, test_progs:get_branch_snapshot is
not reliable in some systems. Replace it with PERF_COUNT_HW_CPU_CYCLES
event, which gives more consistent results.

Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/bpf/20230407190130.2093736-1-song@kernel.org
tools/testing/selftests/bpf/prog_tests/get_branch_snapshot.c

index 3948da1..0394a11 100644 (file)
@@ -37,8 +37,8 @@ static int create_perf_events(void)
 
        /* create perf event */
        attr.size = sizeof(attr);
-       attr.type = PERF_TYPE_RAW;
-       attr.config = 0x1b00;
+       attr.type = PERF_TYPE_HARDWARE;
+       attr.config = PERF_COUNT_HW_CPU_CYCLES;
        attr.sample_type = PERF_SAMPLE_BRANCH_STACK;
        attr.branch_sample_type = PERF_SAMPLE_BRANCH_KERNEL |
                PERF_SAMPLE_BRANCH_USER | PERF_SAMPLE_BRANCH_ANY;