aboutsummaryrefslogtreecommitdiff
path: root/gprofng/src/collctrl.cc
diff options
context:
space:
mode:
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>2024-05-16 21:00:51 -0700
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>2024-05-17 18:28:05 -0700
commitee7af0e7107e918d37bd2686fea1db8f88d2242a (patch)
tree12897d98828474dcde1099595921b4e344305bea /gprofng/src/collctrl.cc
parent663741df74f975ca00de84ba17d2cd8417bb1d03 (diff)
downloadbinutils-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.cc7
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 */