Messages in this thread | | | Date | Tue, 13 Sep 2022 17:08:30 +0530 | Subject | Re: [PATCH V2 6/7] arm64/perf: Add BRBE driver | From | Anshuman Khandual <> |
| |
On 9/13/22 16:09, James Clark wrote: > > > On 08/09/2022 06:10, Anshuman Khandual wrote: >> This adds a BRBE driver which implements all the required helper functions >> for struct arm_pmu. Following functions are defined by this driver which >> will configure, enable, capture, reset and disable BRBE buffer HW as and >> when requested via perf branch stack sampling framework. >> >> - arm64_pmu_brbe_filter() >> - arm64_pmu_brbe_enable() >> - arm64_pmu_brbe_disable() >> - arm64_pmu_brbe_read() >> - arm64_pmu_brbe_probe() >> - arm64_pmu_brbe_reset() >> - arm64_pmu_brbe_supported() >> >> Cc: Peter Zijlstra <peterz@infradead.org> >> Cc: Ingo Molnar <mingo@redhat.com> >> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> >> Cc: Mark Rutland <mark.rutland@arm.com> >> Cc: Will Deacon <will@kernel.org> >> Cc: Catalin Marinas <catalin.marinas@arm.com> >> Cc: linux-arm-kernel@lists.infradead.org >> Cc: linux-perf-users@vger.kernel.org >> Cc: linux-kernel@vger.kernel.org >> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> >> --- >> arch/arm64/kernel/perf_event.c | 8 +- >> drivers/perf/Kconfig | 11 + >> drivers/perf/Makefile | 1 + >> drivers/perf/arm_pmu_brbe.c | 448 +++++++++++++++++++++++++++++++++ >> drivers/perf/arm_pmu_brbe.h | 259 +++++++++++++++++++ >> include/linux/perf/arm_pmu.h | 20 ++ >> 6 files changed, 746 insertions(+), 1 deletion(-) >> create mode 100644 drivers/perf/arm_pmu_brbe.c >> create mode 100644 drivers/perf/arm_pmu_brbe.h >> > [...] >> + >> +static int brbe_fetch_perf_priv(u64 brbinf) >> +{ >> + int brbe_el = brbe_fetch_el(brbinf); >> + >> + switch (brbe_el) { >> + case BRBINF_EL_EL0: >> + return PERF_BR_PRIV_USER; >> + case BRBINF_EL_EL1: >> + return PERF_BR_PRIV_KERNEL; >> + case BRBINF_EL_EL2: >> + if (is_kernel_in_hyp_mode()) >> + return PERF_BR_PRIV_KERNEL; >> + return PERF_BR_PRIV_HV; >> + default: >> + pr_warn("unknown branch privilege captured\n"); >> + return -1; > > On V1 you said that you would change this to PERF_BR_PRIV_UNKNOWN, looks > like that was dropped. Unless it didn't work out?
Seems like it just got dropped unintentionally. Yes, PERF_BR_PRIV_UNKNOWN can be returned here instead of "-1", similar to brbe_fetch_perf_type() which returns PERF_BR_UNKNOWN.
| |