device: 0.823 performance: 0.649 semantic: 0.636 files: 0.594 ppc: 0.573 network: 0.558 graphic: 0.548 mistranslation: 0.517 architecture: 0.486 user-level: 0.478 peripherals: 0.461 boot: 0.425 debug: 0.380 permissions: 0.359 PID: 0.358 x86: 0.314 socket: 0.299 i386: 0.285 TCG: 0.271 register: 0.250 VMM: 0.243 vnc: 0.207 arm: 0.193 risc-v: 0.188 KVM: 0.145 kernel: 0.125 assembly: 0.101 hypervisor: 0.097 virtual: 0.033 trace_usb_port_attach prints junk data Running qemu with tracing (-D ~/qemu_trace -d trace:\*) will result in a trace file with unprintable characters. example: usb_port_attach bus 0, port 1, devspeed <90>l.U, portspeed full+high The problem is in hw/usb/bus.c usb_mask_to_str. If speedmask doesn't match any of the defined speed nothing is written to *dest and uninitialized data is printed to the log. This happens with a real usb device that is forwarded into the machine. My qemu version is 2.6.0 but it looks like the problem exists in latest git also. This bug is still present in current head of git; I've just sent a patch: http://patchwork.ozlabs.org/patch/1068196/ Patch has been included here: https://git.qemu.org/?p=qemu.git;a=commitdiff;h=5189e30b146ab39f9d