* [PATCH v2 0/2] perf: riscv: fix register name strings
@ 2026-06-09 8:13 Martin Kaiser
2026-06-09 8:13 ` [PATCH v2 1/2] perf: avoid redefinition warnings for REG_DWARFNUM_NAME Martin Kaiser
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Martin Kaiser @ 2026-06-09 8:13 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Namhyung Kim, Ian Rogers
Cc: linux-perf-users, linux-kernel, Martin Kaiser
Fix the register name strings for risc-v to match the syntax for kprobes.
This requires redefining REG_DWARFNUM_NAME. Make sure that different
definitions for different architectures don't create compiler warnings.
Martin Kaiser (2):
perf: avoid redefinition warnings for REG_DWARFNUM_NAME
perf riscv: fix register name strings
tools/perf/arch/powerpc/include/dwarf-regs-table.h | 1 +
tools/perf/arch/riscv/include/dwarf-regs-table.h | 3 ++-
tools/perf/arch/s390/include/dwarf-regs-table.h | 1 +
3 files changed, 4 insertions(+), 1 deletion(-)
--
2.43.7
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/2] perf: avoid redefinition warnings for REG_DWARFNUM_NAME
2026-06-09 8:13 [PATCH v2 0/2] perf: riscv: fix register name strings Martin Kaiser
@ 2026-06-09 8:13 ` Martin Kaiser
2026-06-09 8:13 ` [PATCH v2 2/2] perf riscv: fix register name strings Martin Kaiser
2026-06-10 19:55 ` [PATCH v2 0/2] perf: " Arnaldo Carvalho de Melo
2 siblings, 0 replies; 4+ messages in thread
From: Martin Kaiser @ 2026-06-09 8:13 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Namhyung Kim, Ian Rogers
Cc: linux-perf-users, linux-kernel, Martin Kaiser,
Arnaldo Carvalho de Melo
dwarf-regs.c includes an arch-specific dwarf-regs-table.h for several
architectures. This pulls in different definitions of REG_DWARFNUM_NAME
and causes compiler warnings for W=1 builds.
In file included from util/dwarf-regs.c:23:
.../dwarf-regs-table.h:5: error: "REG_DWARFNUM_NAME" redefined [-Werror]
#define REG_DWARFNUM_NAME(reg, idx) [idx] = reg
Undefine REG_DWARFNUM_NAME before each new definition.
Suggested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
Arnaldo: I've now gotten to the same point as you. We need two separate
patches ;-)
tools/perf/arch/powerpc/include/dwarf-regs-table.h | 1 +
tools/perf/arch/riscv/include/dwarf-regs-table.h | 1 +
tools/perf/arch/s390/include/dwarf-regs-table.h | 1 +
3 files changed, 3 insertions(+)
diff --git a/tools/perf/arch/powerpc/include/dwarf-regs-table.h b/tools/perf/arch/powerpc/include/dwarf-regs-table.h
index 66dc015a733d..7e746cb31b66 100644
--- a/tools/perf/arch/powerpc/include/dwarf-regs-table.h
+++ b/tools/perf/arch/powerpc/include/dwarf-regs-table.h
@@ -7,6 +7,7 @@
* http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html
* http://refspecs.linux-foundation.org/elf/elfspec_ppc.pdf
*/
+#undef REG_DWARFNUM_NAME
#define REG_DWARFNUM_NAME(reg, idx) [idx] = "%" #reg
static const char * const powerpc_regstr_tbl[] = {
diff --git a/tools/perf/arch/riscv/include/dwarf-regs-table.h b/tools/perf/arch/riscv/include/dwarf-regs-table.h
index a45b63a6d5a8..009a4e3c51ab 100644
--- a/tools/perf/arch/riscv/include/dwarf-regs-table.h
+++ b/tools/perf/arch/riscv/include/dwarf-regs-table.h
@@ -2,6 +2,7 @@
#ifdef DEFINE_DWARF_REGSTR_TABLE
/* This is included in perf/util/dwarf-regs.c */
+#undef REG_DWARFNUM_NAME
#define REG_DWARFNUM_NAME(reg, idx) [idx] = "%" #reg
static const char * const riscv_regstr_tbl[] = {
diff --git a/tools/perf/arch/s390/include/dwarf-regs-table.h b/tools/perf/arch/s390/include/dwarf-regs-table.h
index 671553525f41..e90b63157702 100644
--- a/tools/perf/arch/s390/include/dwarf-regs-table.h
+++ b/tools/perf/arch/s390/include/dwarf-regs-table.h
@@ -2,6 +2,7 @@
#ifndef S390_DWARF_REGS_TABLE_H
#define S390_DWARF_REGS_TABLE_H
+#undef REG_DWARFNUM_NAME
#define REG_DWARFNUM_NAME(reg, idx) [idx] = "%" #reg
/*
--
2.43.7
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] perf riscv: fix register name strings
2026-06-09 8:13 [PATCH v2 0/2] perf: riscv: fix register name strings Martin Kaiser
2026-06-09 8:13 ` [PATCH v2 1/2] perf: avoid redefinition warnings for REG_DWARFNUM_NAME Martin Kaiser
@ 2026-06-09 8:13 ` Martin Kaiser
2026-06-10 19:55 ` [PATCH v2 0/2] perf: " Arnaldo Carvalho de Melo
2 siblings, 0 replies; 4+ messages in thread
From: Martin Kaiser @ 2026-06-09 8:13 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Namhyung Kim, Ian Rogers
Cc: linux-perf-users, linux-kernel, Martin Kaiser
On risc-v, pref probe generates an invalid syntax for a named register in
a kprobe.
$ perf probe --debug verbose --add "n_tty_write tty"
...
Writing event: p:probe/n_tty_write _text+8922528 tty=%"%a0":x64
Failed to write event: Invalid argument
The problem is the combination of
#define REG_DWARFNUM_NAME(reg, idx) [idx] = "%" #reg
and entries such as
REG_DWARFNUM_NAME("%a0", 10)
where #reg will escape the quotes of the first macro parameter.
Update the macro definition to produce the correct syntax for a named
register in a kprobe, i.e. the unquoted register name with only one
leading %.
Fixes: a90c4519186d ("perf riscv: Remove dwarf-regs.c and add dwarf-regs-table.h")
Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
tools/perf/arch/riscv/include/dwarf-regs-table.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/arch/riscv/include/dwarf-regs-table.h b/tools/perf/arch/riscv/include/dwarf-regs-table.h
index 009a4e3c51ab..8c42806d34f1 100644
--- a/tools/perf/arch/riscv/include/dwarf-regs-table.h
+++ b/tools/perf/arch/riscv/include/dwarf-regs-table.h
@@ -3,7 +3,7 @@
/* This is included in perf/util/dwarf-regs.c */
#undef REG_DWARFNUM_NAME
-#define REG_DWARFNUM_NAME(reg, idx) [idx] = "%" #reg
+#define REG_DWARFNUM_NAME(reg, idx) [idx] = reg
static const char * const riscv_regstr_tbl[] = {
REG_DWARFNUM_NAME("%zero", 0),
--
2.43.7
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 0/2] perf: riscv: fix register name strings
2026-06-09 8:13 [PATCH v2 0/2] perf: riscv: fix register name strings Martin Kaiser
2026-06-09 8:13 ` [PATCH v2 1/2] perf: avoid redefinition warnings for REG_DWARFNUM_NAME Martin Kaiser
2026-06-09 8:13 ` [PATCH v2 2/2] perf riscv: fix register name strings Martin Kaiser
@ 2026-06-10 19:55 ` Arnaldo Carvalho de Melo
2 siblings, 0 replies; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2026-06-10 19:55 UTC (permalink / raw)
To: Martin Kaiser; +Cc: Namhyung Kim, Ian Rogers, linux-perf-users, linux-kernel
On Tue, Jun 09, 2026 at 10:13:07AM +0200, Martin Kaiser wrote:
> Fix the register name strings for risc-v to match the syntax for kprobes.
>
> This requires redefining REG_DWARFNUM_NAME. Make sure that different
> definitions for different architectures don't create compiler warnings.
Thanks, applied to perf-tools-next, for v7.2.
- Arnaldo
> Martin Kaiser (2):
> perf: avoid redefinition warnings for REG_DWARFNUM_NAME
> perf riscv: fix register name strings
>
> tools/perf/arch/powerpc/include/dwarf-regs-table.h | 1 +
> tools/perf/arch/riscv/include/dwarf-regs-table.h | 3 ++-
> tools/perf/arch/s390/include/dwarf-regs-table.h | 1 +
> 3 files changed, 4 insertions(+), 1 deletion(-)
>
> --
> 2.43.7
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-06-10 19:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-09 8:13 [PATCH v2 0/2] perf: riscv: fix register name strings Martin Kaiser
2026-06-09 8:13 ` [PATCH v2 1/2] perf: avoid redefinition warnings for REG_DWARFNUM_NAME Martin Kaiser
2026-06-09 8:13 ` [PATCH v2 2/2] perf riscv: fix register name strings Martin Kaiser
2026-06-10 19:55 ` [PATCH v2 0/2] perf: " Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox