We have a number of tracepoints that mistakenly truncate 64-bit values into 32-bit printouts, making the trace less useful than what is fully possible.
Previously posted patch 1 here: https://lists.gnu.org/archive/html/qemu-devel/2017-03/msg01918.html At which point I realized the problem may be more pervasive, so I started a much bigger audit (aided by patch 30 of this series). Proposing the (bulk of this) series for 2.9. Patches 1-3 are ready to go, and definitely belong in 2.9 as bug-fixes; 4-29 can probably be treated as bug-fixes and included per maintainer discretion, but may need further tweaks on platforms with different typing setups than what I tested with (for example, I have not attempted a 32-bit build, which will likely flag some additional misuse of "%lx" that should have been "%"PRIx64, and I know that mingw still trips things up). Patch 30 is NOT 2.9 material - it has too much risk of causing compilation failures on platforms with different types, where the current behavior of just (silently) switching between types allows compilation (even if it is not accurate traces). But if we like the approach, there are enough potential merge-conflict magnets that the overall series should probably go early into 2.10 (other than the bug-fixes picked into 2.9), and patch 30 is essential to keeping us from regressing into future type mismatches. Eric Blake (30): trace: Fix backwards mirror_yield parameters trace: Fix incorrect megasas trace parameters trace: Avoid abuse of amdvi_mmio_read trace: Fix parameter types in block trace: Fix parameter types in io trace: Fix parameter types in migration trace: Fix parameter types in ui trace: Fix parameter types in top level trace: Fix parameter types in linux-user trace: Fix parameter types in hw/acpi trace: Fix parameter types in hw/audio trace: Fix parameter types in hw/block trace: Fix parameter types in hw/char trace: Fix parameter types in hw/display trace: Fix parameter types in hw/dma trace: Fix parameter types in hw/i386 trace: Fix parameter types in hw/input trace: Fix parameter types in hw/intc trace: Fix parameter types in hw/isa trace: Fix parameter types in hw/misc trace: Fix parameter types in hw/net trace: Fix parameter types in hw/nvram trace: Fix parameter types in hw/ppc trace: Fix parameter types in hw/sd trace: Fix parameter types in hw/scsi trace: Fix parameter types in hw/timer trace: Fix parameter types in hw/usb trace: Fix parameter types in hw/vfio trace: Fix parameter types in hw/virtio trace: Force compiler warnings on trace parameter type mismatches scripts/tracetool/format/h.py | 13 +++++ block/mirror.c | 5 +- cpu-exec.c | 6 +-- hw/block/virtio-blk.c | 4 +- hw/char/escc.c | 4 +- hw/i386/amd_iommu.c | 3 +- hw/intc/apic_common.c | 2 +- hw/net/e1000e_core.c | 10 ++-- hw/nvram/fw_cfg.c | 2 +- hw/scsi/esp-pci.c | 2 +- hw/scsi/megasas.c | 14 +++--- hw/timer/grlib_gptimer.c | 6 +-- hw/usb/hcd-ehci.c | 9 ++-- hw/usb/hcd-xhci.c | 4 +- hw/vfio/pci.c | 3 +- io/channel-command.c | 2 +- linux-user/signal.c | 106 +++++++++++++++++++-------------------- translate-all.c | 2 +- block/trace-events | 4 +- hw/acpi/trace-events | 6 +-- hw/audio/trace-events | 8 +-- hw/char/trace-events | 14 +++--- hw/display/trace-events | 20 ++++---- hw/dma/trace-events | 8 +-- hw/i386/trace-events | 3 +- hw/input/trace-events | 4 +- hw/intc/trace-events | 40 +++++++-------- hw/isa/trace-events | 4 +- hw/misc/trace-events | 44 ++++++++-------- hw/net/trace-events | 58 ++++++++++----------- hw/nvram/trace-events | 4 +- hw/ppc/trace-events | 16 +++--- hw/scsi/trace-events | 114 +++++++++++++++++++++--------------------- hw/sd/trace-events | 4 +- hw/timer/trace-events | 14 +++--- hw/usb/trace-events | 84 +++++++++++++++---------------- hw/vfio/trace-events | 14 +++--- hw/virtio/trace-events | 2 +- migration/trace-events | 4 +- trace-events | 2 +- ui/trace-events | 8 +-- 41 files changed, 347 insertions(+), 329 deletions(-) -- 2.9.3