Skip to content

xive: An extra '0x' prefix when printing hex values in the trace.

Host environment

  • Operating system: Arch Linux
  • OS/kernel version: 5.13.9
  • Architecture: x86_64
  • QEMU flavor: qemu-system-ppc64
  • QEMU version: QEMU emulator version 6.0.91 (v6.1.0-rc1-87-g2cd9e2bd)
  • QEMU command line:
    qemu-system-ppc64 -M powernv9 -trace enable=xive_*

Emulated/Virtualized environment

  • Operating system: In-built skiboot is sufficient.
  • OS/kernel version:
  • Architecture: ppc64le

Description of problem

The trace functions corresponding to the functions below print certain parameters with a double "0x" prefix, i.e., with "0x0x".

  • xive_source_esb_read
  • xive_source_esb_write
  • xive_tctx_tm_write
  • xive_tctx_tm_read

Steps to reproduce

  1. Execute the command line on a terminal
  2. Watch the terminal for the output.

Additional information

Sample output:

xive_end_source_read END 0x0/0xf @0x0x1e0800
xive_source_esb_read @0x0x210c00 IRQ 0x10 val=0x0x1  
xive_tctx_tm_read @0x0x10038 sz=1 val=0x0
xive_tctx_tm_write @0x0x10038 sz=1 val=0x80
xive_tctx_tm_read @0x0x10038 sz=1 val=0x80
xive_end_source_read END 0x0/0xf @0x0x1e0800
xive_source_esb_read @0x0x210c00 IRQ 0x10 val=0x0x1
xive_tctx_tm_read @0x0x10038 sz=1 val=0x0
xive_tctx_tm_write @0x0x10038 sz=1 val=0x80
xive_tctx_tm_read @0x0x10038 sz=1 val=0x80

The source lines at fault:

xive_source_esb_read(uint64_t addr, uint32_t srcno, uint64_t value) "@0x0x%"PRIx64" IRQ 0x%x val=0x0x%"PRIx64
xive_source_esb_write(uint64_t addr, uint32_t srcno, uint64_t value) "@0x0x%"PRIx64" IRQ 0x%x val=0x0x%"PRIx64
xive_tctx_tm_write(uint64_t offset, unsigned int size, uint64_t value) "@0x0x%"PRIx64" sz=%d val=0x%" PRIx64
xive_tctx_tm_read(uint64_t offset, unsigned int size, uint64_t value) "@0x0x%"PRIx64" sz=%d val=0x%" PRIx64
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information