gprofng: Add hardware counter profiling for the Ampere system

gprofng should recognize Ampere and other ARM systems.

gprofng/ChangeLog
2024-02-22  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

	* common/hwc_cpus.h: Declare the enum values ARM_CPU_IMP_*.
	* common/core_pcbe.c (core_pcbe_init): Accept new systems ARM_CPU_IMP_*.
This commit is contained in:
Vladimir Mezentsev 2024-02-22 15:30:40 -08:00
parent 29c238c5fb
commit f8c018bcd4
2 changed files with 13 additions and 2 deletions

View File

@ -2746,6 +2746,11 @@ core_pcbe_init (void)
case ARM_CPU_IMP_CAVIUM:
case ARM_CPU_IMP_APM:
case ARM_CPU_IMP_QCOM:
case ARM_CPU_IMP_FUJITSU:
case ARM_CPU_IMP_NVIDIA:
case ARM_CPU_IMP_HISI:
case ARM_CPU_IMP_APPLE:
case ARM_CPU_IMP_AMPERE:
snprintf (core_impl_name, sizeof (core_impl_name), "%s", AARCH64_VENDORSTR_ARM);
events_table = events_generic;
num_gpc = 4; // MEZ: a real implementation is needed

View File

@ -117,13 +117,19 @@ extern cpu_info_t *read_cpuinfo();
#define CPC_SPARC64_X 4006 /* Athena */
#define CPC_SPARC64_XII 4010 /* Athena++ */
// aarch64. Constants from arch/arm64/include/asm/cputype.h
// aarch64. Constants from tools/arch/arm64/include/asm/cputype.h
// in https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
enum {
ARM_CPU_IMP_ARM = 0x41,
ARM_CPU_IMP_BRCM = 0x42,
ARM_CPU_IMP_CAVIUM = 0x43,
ARM_CPU_IMP_FUJITSU = 0x46,
ARM_CPU_IMP_NVIDIA = 0x4E,
ARM_CPU_IMP_HISI = 0x48,
ARM_CPU_IMP_APM = 0x50,
ARM_CPU_IMP_QCOM = 0x51
ARM_CPU_IMP_QCOM = 0x51,
ARM_CPU_IMP_APPLE = 0x61,
ARM_CPU_IMP_AMPERE = 0xC0
};
#define AARCH64_VENDORSTR_ARM "ARM"