diff options
author | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2024-05-16 21:00:51 -0700 |
---|---|---|
committer | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2024-05-17 18:28:05 -0700 |
commit | ee7af0e7107e918d37bd2686fea1db8f88d2242a (patch) | |
tree | 12897d98828474dcde1099595921b4e344305bea /gprofng/src/collctrl.cc | |
parent | 663741df74f975ca00de84ba17d2cd8417bb1d03 (diff) | |
download | binutils-ee7af0e7107e918d37bd2686fea1db8f88d2242a.zip binutils-ee7af0e7107e918d37bd2686fea1db8f88d2242a.tar.gz binutils-ee7af0e7107e918d37bd2686fea1db8f88d2242a.tar.bz2 |
gprofng: add hardware counters for AMD Zen3
Historically, we have used several APIs (perfctr, libcpc, perf_event_open) for profiling.
For each hardware we have several tables of hardware counters.
Some information is duplicated in these tables.
Some of the information is no longer used.
I did not touch the existing hwc tables.
I added a new hwc table for an AMD Zen3 machine.
ChangeLog
2024-05-16 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
PR gprofng/31123
* common/core_pcbe.c (core_pcbe_get_events): Add new argument.
* common/hwc_cpus.h: New constants for AMD hardware.
* common/hwcdrv.c: Add new argument to hwcdrv_get_descriptions.
Clean up the code.
* common/hwcdrv.h: Likewise.
* common/hwcfuncs.c (hwcdrv_get_descriptions): Add new argument.
* common/hwctable.c: Add the hwc table for AMD Zen3.
* src/hwc_amd_zen3.h: New file.
* common/opteron_pcbe.c: Add new argument to opt_pcbe_get_events.
* src/collctrl.cc: Remove unused variable.
* src/collctrl.h: Likewise.
Diffstat (limited to 'gprofng/src/collctrl.cc')
-rw-r--r-- | gprofng/src/collctrl.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gprofng/src/collctrl.cc b/gprofng/src/collctrl.cc index 7d2b23c..28fdb0b 100644 --- a/gprofng/src/collctrl.cc +++ b/gprofng/src/collctrl.cc @@ -131,6 +131,10 @@ read_cpuinfo() } fclose (procf); } + if (cpu_info.cpu_vendorstr == NULL) + cpu_info.cpu_vendorstr = GTXT ("Unknown processor"); + if (cpu_info.cpu_modelstr == NULL) + cpu_info.cpu_modelstr = GTXT ("Unknown cpu model"); return &cpu_info; } @@ -176,7 +180,6 @@ Coll_Ctrl::Coll_Ctrl (int _interactive, bool _defHWC, bool _kernelHWC) /* set default clock parameters */ hwcprof_enabled_cnt = 0; // must be set before calling determine_profile_params(); determine_profile_params (); // inits clk_params which is used by clock profiling AND HWCs - cpc_cpuver = CPUVER_UNDEFINED; /* set default control values */ debug_mode = 0; @@ -271,7 +274,6 @@ Coll_Ctrl::Coll_Ctrl (Coll_Ctrl * cc) cpu_clk_freq = cc->cpu_clk_freq; npages = cc->npages; page_size = cc->page_size; - cpc_cpuver = cc->cpc_cpuver; debug_mode = cc->debug_mode; java_mode = cc->java_mode; java_default = cc->java_default; @@ -1470,7 +1472,6 @@ Coll_Ctrl::add_hwcstring (const char *string, char **warnmsg) prev_cnt = 0; /* look up the CPU version */ - cpc_cpuver = hwc_get_cpc_cpuver (); if (string && *string) { /* lookup counters */ |