Messages in this thread | | | Date | Tue, 13 Sep 2022 11:39:38 +0100 | Subject | Re: [PATCH V2 6/7] arm64/perf: Add BRBE driver | From | James Clark <> |
| |
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?
| |