From: Arnaldo Carvalho de Melo <>

In 293d5b439483 ("perf probe: Support probing on offline cross-arch binary")
DWARF register tables were introduced for many architectures, with the one for
the "dx" register being broken for x86_64, which got noticed by the 'perf test
bpf' testcase, that has this difference from a successful run to one that
fails, with the aforementioned patch:

  -Writing event: p:perf_bpf_probe/func _text+5197232 f_mode=+68(%di):x32 
offset=%si:s64 orig=dx:s32
  -Failed to write event: Invalid argument
  -bpf_probe: failed to apply perf probe eventsFailed to add events selected by 
  +Writing event: p:perf_bpf_probe/func _text+5197232 f_mode=+68(%di):x32 
offset=%si:s64 orig=%dx:s32

Add the missing '%' to '%dx' to fix this.

Acked-by: Masami Hiramatsu <>
Cc: Adrian Hunter <>
Cc: David Ahern <>
Cc: Jiri Olsa <>
Cc: Namhyung Kim <>
Cc: Wang Nan <>
Fixes: 293d5b439483 ("perf probe: Support probing on offline cross-arch binary")
Signed-off-by: Arnaldo Carvalho de Melo <>
 tools/perf/arch/x86/include/dwarf-regs-table.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/arch/x86/include/dwarf-regs-table.h 
index 39ac7cbb525b..9b5e5cbb4209 100644
--- a/tools/perf/arch/x86/include/dwarf-regs-table.h
+++ b/tools/perf/arch/x86/include/dwarf-regs-table.h
@@ -7,7 +7,7 @@ static const char * const x86_32_regstr_tbl[] = {
 static const char * const x86_64_regstr_tbl[] = {
-       "%ax", "dx", "%cx", "%bx", "%si", "%di",
+       "%ax", "%dx", "%cx", "%bx", "%si", "%di",
        "%bp", "%sp", "%r8", "%r9", "%r10", "%r11",
        "%r12", "%r13", "%r14", "%r15",

Reply via email to