Commit 06c0a4ea authored by Anshuman Khandual's avatar Anshuman Khandual Committed by Junhao He
Browse files

perf branch: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform

mainline inclusion
from mainline-v6.1-rc1
commit fb42f8b7
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I8EC9K
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=fb42f8b729f431b53acfaa8bf1b4d43b98e62e14



--------------------------------

This updates the perf tool with arch specific branch type classification
used for BRBE on arm64 platform as added in the kernel earlier.

Signed-off-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20220824044822.70230-9-anshuman.khandual@arm.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarJunhao He <hejunhao3@huawei.com>
parent 5644a37a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -266,6 +266,12 @@ enum {
	PERF_BR_PRIV_HV		= 3,
};

#define PERF_BR_ARM64_FIQ              PERF_BR_NEW_ARCH_1
#define PERF_BR_ARM64_DEBUG_HALT       PERF_BR_NEW_ARCH_2
#define PERF_BR_ARM64_DEBUG_EXIT       PERF_BR_NEW_ARCH_3
#define PERF_BR_ARM64_DEBUG_INST       PERF_BR_NEW_ARCH_4
#define PERF_BR_ARM64_DEBUG_DATA       PERF_BR_NEW_ARCH_5

#define PERF_SAMPLE_BRANCH_PLM_ALL \
	(PERF_SAMPLE_BRANCH_USER|\
	 PERF_SAMPLE_BRANCH_KERNEL|\
+13 −0
Original line number Diff line number Diff line
@@ -45,11 +45,24 @@ const char *branch_new_type_name(int new_type)
		"FAULT_ALGN",
		"FAULT_DATA",
		"FAULT_INST",
/*
 * TODO: This switch should happen on 'session->header.env.arch'
 * instead, because an arm64 platform perf recording could be
 * opened for analysis on other platforms as well.
 */
#ifdef __aarch64__
		"ARM64_FIQ",
		"ARM64_DEBUG_HALT",
		"ARM64_DEBUG_EXIT",
		"ARM64_DEBUG_INST",
		"ARM64_DEBUG_DATA"
#else
		"ARCH_1",
		"ARCH_2",
		"ARCH_3",
		"ARCH_4",
		"ARCH_5"
#endif
	};

	if (new_type >= 0 && new_type < PERF_BR_NEW_MAX)