Re: [PATCH V3 7/7] arm64/perf: Enable branch stack sampling
From: Suzuki K Poulose <suzuki.poulose@arm.com>
Date: 2022-10-10 15:48:46
Also in:
linux-perf-users, lkml
On 10/10/2022 14:55, James Clark wrote:
On 29/09/2022 08:58, Anshuman Khandual wrote:quoted
Now that all the required pieces are already in place, just enable the perf branch stack sampling support on arm64 platform, by removing the gate which blocks it in armpmu_event_init(). Cc: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Anshuman Khandual <redacted> --- drivers/perf/arm_pmu.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-)diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c index 93b36933124f..2a9b988b53c2 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c@@ -537,9 +537,35 @@ static int armpmu_event_init(struct perf_event *event) !cpumask_test_cpu(event->cpu, &armpmu->supported_cpus)) return -ENOENT; - /* does not support taken branch sampling */ - if (has_branch_stack(event)) - return -EOPNOTSUPP; + if (has_branch_stack(event)) { + /* + * BRBE support is absent. Select CONFIG_ARM_BRBE_PMU + * in the config, before branch stack sampling events + * can be requested. + */ + if (!IS_ENABLED(CONFIG_ARM_BRBE_PMU)) { + pr_warn_once("BRBE is disabled, select CONFIG_ARM_BRBE_PMU\n"); + return -EOPNOTSUPP; + } + + if (event->attr.branch_sample_type & PERF_SAMPLE_BRANCH_KERNEL) { + if (!perfmon_capable()) {I'm still getting different behaviour compared to x86 when using perf_event_paranoid because of this perfmon_capable() call here.
Given the generic events framework already checks this for any privileged branch samples (i.e., for both KERNEL and HV), the individual drivers must not add additional restrictions.
quoted
+ pr_warn_once("does not have permission for kernel branch filter\n");Also I was under the impression that this should be more like a KERN_INFO loglevel rather than a KERN_WARNING. It's more like expected behavior rather than unexpected behavior and as far as I know anyone who sees something in dmesg might think something has gone wrong and try to follow it up. It is quite a useful message but I remember getting a review like this before and it made sense to me.
+1 Suzuki _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel