Re: [PATCH v4 05/23] perf dwarf-regs: Adapt get_dwarf_regnum() for arm64
Tengda Wu <[email protected]>
| Newsgroups | dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-perf-users |
|---|---|
| Message-ID | <[email protected]> |
On 2026/8/8 21:12, [email protected] wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > - [Medium] The programmatic DWARF register lookup __get_dwarf_regnum_arm64() fails to support the standard AArch64 'lr' (link register) and 'fp' (frame pointer) aliases. > -- > > --- Patch [5]: [PATCH v4 05/23] perf dwarf-regs: Adapt get_dwarf_regnum() for arm64 --- > commit 7e82be98e18ee79f31ad73b727e21d33b0a6f30d > Author: Tengda Wu <[email protected]> > > perf dwarf-regs: Adapt get_dwarf_regnum() for arm64 > > This patch replaces the static string table lookup for arm64 DWARF registers > with a programmatic implementation. This change allows resolving arm64 > register names directly into their corresponding DWARF register numbers > during annotation parsing. > >> diff --git a/tools/perf/util/dwarf-regs-arch/dwarf-regs-arm64.c b/tools/perf/util/dwarf-regs-arch/dwarf-regs-arm64.c >> index 593ca7d4fccca..720c863d18696 100644 >> --- a/tools/perf/util/dwarf-regs-arch/dwarf-regs-arm64.c >> +++ b/tools/perf/util/dwarf-regs-arch/dwarf-regs-arm64.c > > [ ... ] > >> @@ -10,3 +13,22 @@ int __get_dwarf_regnum_for_perf_regnum_arm64(int perf_regnum) >> >> return perf_regnum; >> } >> + >> +int __get_dwarf_regnum_arm64(const char *name) >> +{ >> + int reg; >> + >> + if (!strcmp(name, "sp")) >> + return 31; >> + >> + if (*name != 'x' && *name != 'w') >> + return -ENOENT; > > [Severity: Medium] > Will this strict prefix check inadvertently reject standard AArch64 aliases > like lr and fp? > > These architectural aliases are frequently emitted by objdump and were > previously handled by the old static table. When perf annotate attempts > to look up lr or fp, this programmatic DWARF register lookup in > __get_dwarf_regnum_arm64() will fail because the name does not start with > x or w. > Currently, I have not seen such aliases in AArch64 disassembly output, nor are they documented in the manual. Therefore, I will not change this and will keep it as-is.