I found couple of events using al, bl, cl and dl registers for
argument. These are not directly accepted by uprobe_events and
thus needs to be mapped to ax, bx, cx and dx respectively.

Few ex,

  /usr/bin/qemu-system-s390x
    css_adapter_interrupt: 1@%bl
    css_chpid_add: 1@%cl 1@%sil 1@%dl
    dma_bdrv_io: 8@%rbx 8@%rbp -8@%r14 1@%al

  /usr/bin/postgres
    buffer__read__done: ... -1@-bash -1@%al
    buffer__read__start: ... -1@%al

Signed-off-by: Ravi Bangoria <ravi.bango...@linux.vnet.ibm.com>
---
 tools/perf/arch/x86/util/perf_regs.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tools/perf/arch/x86/util/perf_regs.c 
b/tools/perf/arch/x86/util/perf_regs.c
index d8a8dcf..99faab4 100644
--- a/tools/perf/arch/x86/util/perf_regs.c
+++ b/tools/perf/arch/x86/util/perf_regs.c
@@ -40,12 +40,16 @@ struct sdt_name_reg {
 static const struct sdt_name_reg sdt_reg_renamings[] = {
        SDT_NAME_REG(eax, ax),
        SDT_NAME_REG(rax, ax),
+       SDT_NAME_REG(al, ax),
        SDT_NAME_REG(ebx, bx),
        SDT_NAME_REG(rbx, bx),
+       SDT_NAME_REG(bl, ax),
        SDT_NAME_REG(ecx, cx),
        SDT_NAME_REG(rcx, cx),
+       SDT_NAME_REG(cl, ax),
        SDT_NAME_REG(edx, dx),
        SDT_NAME_REG(rdx, dx),
+       SDT_NAME_REG(dl, ax),
        SDT_NAME_REG(esi, si),
        SDT_NAME_REG(rsi, si),
        SDT_NAME_REG(sil, si),
-- 
2.9.3

Reply via email to