Re: [PATCH v2 0/3] Support register names of all architectures
From: Athira Rajeev <hidden>
Date: 2021-12-14 08:51:00
Also in:
linux-arm-kernel, linux-riscv, lkml
On 07-Dec-2021, at 11:36 PM, German Gomez [off-list ref] wrote: The following changeset applies some corrections to the way system registers are processed and presented when reading perf.data files using the various perf tools. The commit message from [3/3] shows how register names aren't correctly presented when performing x-arch analysis of perf.data files (recording in one arch, then reading the file from a different arch). - [PATCH 1/3] Fixes a potential out-of-bounds access when reading the values of the registers in the perf.data file. - [PATCH 2/3] Fixes an issue of ARM and ARM64 registers having the same enum name. - [PATCH 3/3] Refactors the function "perf_reg_name" declared in the "tools/perf/util/perf_regs.h" header, in order to support every arch. Thanks, German
Looks good to me. Tested this patchset in powerpc by capturing regs in powerpc and doing perf report to read the data from x86. Reviewed-and-Tested-by: Athira Rajeev [off-list ref]
-- Changes since v1 - Added "Reported-by" tags. - Removed [PATCH 2/4] because it's not needed (suggested by Athira Rajeev). - Removed [PATCH 3/4] which created additional header files with the register names of every arch. - Introduced [PATCH 2/3] to deal with ARM and ARM64 registers having the same enum name across "/tools/perf/". - Reworked the refactor of "perf_reg_name" function (now implemented in perf_regs.c, rather than in the header file) in [PATCH 3/3]. German Gomez (3): perf tools: Prevent out-of-bounds access to registers perf tools: Rename perf_event_arm_regs for ARM64 registers perf tools: Support register names from all archs tools/perf/arch/arm/include/perf_regs.h | 42 -- tools/perf/arch/arm64/include/perf_regs.h | 78 +- tools/perf/arch/csky/include/perf_regs.h | 82 --- tools/perf/arch/mips/include/perf_regs.h | 69 -- tools/perf/arch/powerpc/include/perf_regs.h | 66 -- tools/perf/arch/riscv/include/perf_regs.h | 74 -- tools/perf/arch/s390/include/perf_regs.h | 78 -- tools/perf/arch/x86/include/perf_regs.h | 82 --- tools/perf/builtin-script.c | 18 +- tools/perf/util/event.h | 5 +- tools/perf/util/libunwind/arm64.c | 2 + tools/perf/util/perf_regs.c | 671 +++++++++++++++++- tools/perf/util/perf_regs.h | 10 +- .../scripting-engines/trace-event-python.c | 10 +- tools/perf/util/session.c | 25 +- 15 files changed, 709 insertions(+), 603 deletions(-) -- 2.25.1