perf/x86/amd: Don't reject non-sampling events with configured LBR
authorAndrii Nakryiko <andrii@kernel.org>
Tue, 2 Apr 2024 02:21:18 +0000 (19:21 -0700)
committerIngo Molnar <mingo@kernel.org>
Wed, 3 Apr 2024 07:14:26 +0000 (09:14 +0200)
Now that it's possible to capture LBR on AMD CPU from BPF at arbitrary
point, there is no reason to artificially limit this feature to just
sampling events. So corresponding check is removed. AFAIU, there is no
correctness implications of doing this (and it was possible to bypass
this check by just setting perf_event's sample_period to 1 anyways, so
it doesn't guard all that much).

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Sandipan Das <sandipan.das@amd.com>
Link: https://lore.kernel.org/r/20240402022118.1046049-5-andrii@kernel.org
arch/x86/events/amd/lbr.c

index 33d0a45c0cd385b6d23f7731abfc228198d750f0..19c7b76e21bcb4b2736bdb0a538f641de29c1b02 100644 (file)
@@ -310,10 +310,6 @@ int amd_pmu_lbr_hw_config(struct perf_event *event)
 {
        int ret = 0;
 
-       /* LBR is not recommended in counting mode */
-       if (!is_sampling_event(event))
-               return -EINVAL;
-
        ret = amd_pmu_lbr_setup_filter(event);
        if (!ret)
                event->attach_state |= PERF_ATTACH_SCHED_CB;