]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
gprofng: 31123 improvements to hardware event implementation
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Tue, 9 Jan 2024 06:00:24 +0000 (22:00 -0800)
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Wed, 10 Jan 2024 17:31:08 +0000 (09:31 -0800)
commit8fe04eeb2cbb8c4cf7b6e8d9183fe09a8b2e8d51
treec3c29dfecf57ea78d8de663665a8c4ab53706b6a
parente1cab50d2dd3d416662b5399bd80e6311a6ade0e
gprofng: 31123 improvements to hardware event implementation

Our hardware counter profiling is based on perf_event_open().
Our HWC tables are absent for new machines.
I have added HWC tables for the following events: PERF_TYPE_HARDWARE,
PERF_TYPE_SOFTWARE, PERF_TYPE_HW_CACHE. Other events require additional fixes.

Did a little cleaning: marked the symbols as static, used Stringbuilder,
created a function to read /proc/cpuinfo.

gprofng/ChangeLog
2024-01-08  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

PR gprofng/31123
* common/core_pcbe.c: Mark the symbols as static. Add events_generic[].
* common/hwc_cpus.h: Declare a new function read_cpuinfo.
* common/hwcdrv.c: Add a new parameter in init_perf_event().
* common/hwcentry.h: Add use_perf_event_type in Hwcentry.
* common/hwcfuncs.c (process_data_descriptor): Read use_perf_event_type,
type, config.
* common/hwctable.c: Add a new HWC table generic_list[].
* common/opteron_pcbe.c (opt_pcbe_init): Accept AMD machines.
* src/collctrl.cc: Use StringBuilder in Coll_Ctrl::build_data_desc().
Add a new function read_cpuinfo.
gprofng/common/core_pcbe.c
gprofng/common/hwc_cpus.h
gprofng/common/hwcdrv.c
gprofng/common/hwcentry.h
gprofng/common/hwcfuncs.c
gprofng/common/hwctable.c
gprofng/common/opteron_pcbe.c
gprofng/src/collctrl.cc