diff options
author | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2024-06-01 20:36:06 -0700 |
---|---|---|
committer | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2024-06-03 11:38:58 -0700 |
commit | 9af067bfcdc9a006a7d3517c8c8f805a22b36a35 (patch) | |
tree | 684b0319c5b135ec8050c81877aef092ccd4b829 /gprofng/common/hwctable.c | |
parent | 7c493aa7e73e6718790f6b4a01a39ff4146cba4a (diff) | |
download | binutils-9af067bfcdc9a006a7d3517c8c8f805a22b36a35.zip binutils-9af067bfcdc9a006a7d3517c8c8f805a22b36a35.tar.gz binutils-9af067bfcdc9a006a7d3517c8c8f805a22b36a35.tar.bz2 |
gprofng: add hardware counters for AMD Zen4
ChangeLog
2024-06-01 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
* common/hwctable.c: Add the hwc table for AMD Zen4.
* src/hwc_amd_zen4.h: New file.
* src/hwc_amd_zen3.h: Define _HWC_AMD_ZEN3_H.
Diffstat (limited to 'gprofng/common/hwctable.c')
-rw-r--r-- | gprofng/common/hwctable.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gprofng/common/hwctable.c b/gprofng/common/hwctable.c index 0b4800e..b3ccb36 100644 --- a/gprofng/common/hwctable.c +++ b/gprofng/common/hwctable.c @@ -1303,6 +1303,7 @@ static Hwcentry generic_list[] = { }; #include "hwc_amd_zen3.h" +#include "hwc_amd_zen4.h" /* structure defining the counters for a CPU type */ typedef struct @@ -1353,6 +1354,7 @@ static cpu_list_t cputabs[] = { {ARM_CPU_IMP_APM, generic_list, {"insts,,cycles", 0}}, {CPC_AMD_Authentic, generic_list, {"insts,,cycles", 0}}, {CPC_AMD_FAM_19H_ZEN3, amd_zen3_list, {"insts,,cycles", 0}}, + {CPC_AMD_FAM_19H_ZEN4, amd_zen4_list, {"insts,,cycles", 0}}, {0, generic_list, {"insts,,cycles", 0}}, }; @@ -1825,6 +1827,26 @@ setup_cpc_general (int skip_hwc_test) hwcdrv->hwcdrv_get_info (&cpcx_cpuver, &cpcx_cciname, &cpcx_npics, &cpcx_docref, &cpcx_support_bitmask); + /* Fix cpcx_cpuver for new Zen machines */ + cpu_info_t *cpu_p = read_cpuinfo (); + if (strcmp (cpu_p->cpu_vendorstr, "AuthenticAMD") == 0) + { + if (cpu_p->cpu_family == AMD_ZEN3_FAMILY) + switch (cpu_p->cpu_model) + { + case AMD_ZEN3_RYZEN: + case AMD_ZEN3_RYZEN2: + case AMD_ZEN3_RYZEN3: + case AMD_ZEN3_EPYC_TRENTO: + cpcx_cpuver = CPC_AMD_FAM_19H_ZEN3; + break; + case AMD_ZEN4_RYZEN: + case AMD_ZEN4_EPYC: + cpcx_cpuver = CPC_AMD_FAM_19H_ZEN4; + break; + } + } + #ifdef DISALLOW_PENTIUM_PRO_MMX_7007575 if (cpcx_cpuver == CPC_PENTIUM_PRO_MMX) { |