Windows guest freezes while using passthrough on USB audio recorder.

Bug #1301047 reported by zelluz
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Invalid
Undecided
Unassigned

Bug Description

I have the following issue with my Windows 8.1 guest. (Technical stuff is at the bottom):

I have vfio-binded my graphics card(NVIDIA GTX670) and is passing it through to the guest.
I run heavy 3D applications such as games(Guild Wars 2, Diablo 3, DOTA etc) which works fine(performance is about <90% of a "physical" Windows).

When it comes to Rocksmith 2014 things starts to act up. I can play the game just as good as any other game in the guest(passing through the USB Rocksmith Cable and audio is working perfect), however when I exit the application the guest freezes completely up. I loose contact via Synergy(mouse/keyboard), I cant ping the guest, the screen freezes(always freezing before I see the desktop again), CPU usage of the processes drops down to 0. The memory dedicated to the guest is latent/in use though, as reported by htop/free -m.

This also happens when I go to my sound settings-> record settings(where I can see the Rocksmith cable, as it is a recorder). The vm will freeze up after a couple of seconds being in that menu.

If I remove the USB device from my qemu command and go into my sound settings->record settings there are no freezing issues.

The guest will however not freeze up while browsing through device manager and looking at the USB Rocksmith Cable from there.

My host(Arch Linux) works fine while the host is frozen up.

Is it reproducible?
Yes, every time the USB device is passed through, the guest will at some point lock up while the USB device are used/polled.
Tried with both USB 2.0 and USB 3.0 port with the same thing happening.

Expected outcome:
USB device works without freezing up the guest.

Suggested solution(if at all possible):
Somehow make the USB devices reconnect in the guest when the host is receiving the "ERROR Transfer event for disabled endpoint or incorrect stream ring" messages.
Or make it so that the guest can never lock up while this happens.

Information about USB Rocksmith Cable:
The realtone guitar interface cable is really just a simple USB sound card which is seen as a USB microphone by a computer or console game system. This is actually identical to other 1/4″ to USB adapters such as the Behringer UCG102 Guitar to USB interface.

If there is some more information you need, please do not hesitate to ask for it.
Also, this is my first bug report so please be kind, I appreciate any feedback :)

Technical Information:

CPU: Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz
GPU: NVIDIA GTX 670, latest NVIDIA drivers installed in Windows.
QEMU version: qemu-git 2.0.r31965.g63678e1-1
Host Kernel: Linux 3.13.6-1-mainline x86_64
Guest: Windows 8.1 Professional, fully updated as of 30th March 2014

Qemu command line used:

sudo -E qemu-system-x86_64 \
-enable-kvm \
-M q35 \
-m 8G \
-mem-path /dev/hugepages \
-mem-prealloc \
-cpu host \
-smp 4,sockets=1,cores=4,threads=1 \
-device vfio-pci,host=00:1b.0 \
-bios /usr/share/qemu/bios.bin \
-vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-nographic \
-device ahci,bus=pcie.0,id=ahci \
-drive file=/var/lib/libvirt/images/Windows8.1.img,id=disk,format=raw,cache=none \
-device ide-hd,bus=ahci.0,drive=disk \
-device vfio-pci,host=00:19.0,bus=pcie.0 \
-drive file=/dev/sdb1,id=mmo,format=raw,cache=none \
-device ide-hd,bus=ahci.1,drive=mmo \
-drive file=/home/thor/Windows/Windows-Steam.img,id=steam,format=raw,cache=none \
-usb -usbdevice host:045e:028e \
-usb -usbdevice host:12ba:00ff \
-net none \
-device ide-hd,bus=ahci.2,drive=steam

Strace output in the seconds leading up to the freeze:
See attachment .

Journalctl output on the host while the guest froze:

Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe410 fff9f480 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe420 fff9f490 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe430 fff9f4a0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe440 fff9f4b0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe450 fff9f4c0 00000000 0d00000a 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe460 fff9f4d0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe470 fff9f4e0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe480 fff9f4f0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe490 fff9f500 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe4a0 fff9f510 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe4b0 fff9f520 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe4c0 fff9f530 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe4d0 fff9f540 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe4e0 fff9f550 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe4f0 fff9f560 00000000 0d00000a 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe500 fff9f570 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe510 fff9f580 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe520 fff9f590 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe530 fff9f5a0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe540 fff9f5b0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe550 fff9f5c0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe560 fff9f5d0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe570 fff9f5e0 00000000 0d00000c 07058000
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
Apr 01 22:03:19 ultimaarch kernel: xhci_hcd 0000:00:14.0: @00000000ffffe580 fff9f5f0 00000000 0d00000c 07058000
Apr 01 22:05:46 ultimaarch kernel: INFO: task qemu-system-x86:10006 blocked for more than 120 seconds.
Apr 01 22:05:46 ultimaarch kernel: Not tainted 3.13.6-1-mainline #1
Apr 01 22:05:46 ultimaarch kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Apr 01 22:05:46 ultimaarch kernel: qemu-system-x86 D ffff88080126fab0 0 10006 10005 0x00000005
Apr 01 22:05:46 ultimaarch kernel: ffff88006fb81cf8 0000000000000086 ffff88053a409b00 ffff88006fb81fd8
Apr 01 22:05:46 ultimaarch kernel: 0000000000014400 0000000000014400 ffff88053a409b00 ffffffff81219402
Apr 01 22:05:46 ultimaarch kernel: ffff880000000000 ffffffff81210000 0000000000000282 ffff88006fb81cb0
Apr 01 22:05:46 ultimaarch kernel: Call Trace:
Apr 01 22:05:46 ultimaarch kernel: [<ffffffff81219402>] ? sysfs_addrm_finish+0xa2/0xc0
Apr 01 22:05:46 ultimaarch kernel: [<ffffffff81210000>] ? proc_pid_status+0x5b0/0x6e0
Apr 01 22:05:46 ultimaarch kernel: [<ffffffffa019479c>] ? xhci_urb_dequeue+0x22c/0x360 [xhci_hcd]
Apr 01 22:05:46 ultimaarch kernel: [<ffffffff8138a0a7>] ? put_device+0x17/0x20
Apr 01 22:05:46 ultimaarch kernel: [<ffffffff814f8b99>] schedule+0x29/0x70
Apr 01 22:05:46 ultimaarch kernel: [<ffffffffa0010b9d>] usb_kill_urb+0x5d/0xa0 [usbcore]
Apr 01 22:05:46 ultimaarch kernel: [<ffffffff810a2c30>] ? __wake_up_sync+0x20/0x20
Apr 01 22:05:46 ultimaarch kernel: [<ffffffffa000f6e5>] usb_hcd_flush_endpoint+0xb5/0x180 [usbcore]
Apr 01 22:05:46 ultimaarch kernel: [<ffffffffa0012459>] usb_disable_endpoint+0x59/0x90 [usbcore]
Apr 01 22:05:46 ultimaarch kernel: [<ffffffffa00124d6>] usb_disable_interface+0x46/0x60 [usbcore]
Apr 01 22:05:46 ultimaarch kernel: [<ffffffffa0012a04>] usb_set_interface+0x194/0x360 [usbcore]
Apr 01 22:05:46 ultimaarch kernel: [<ffffffffa001cc5b>] usbdev_do_ioctl+0xa0b/0x1050 [usbcore]
Apr 01 22:05:46 ultimaarch kernel: [<ffffffffa001d2ce>] usbdev_ioctl+0xe/0x20 [usbcore]
Apr 01 22:05:46 ultimaarch kernel: [<ffffffff811b6350>] do_vfs_ioctl+0x2e0/0x4c0
Apr 01 22:05:46 ultimaarch kernel: [<ffffffff811b65b1>] SyS_ioctl+0x81/0xa0
Apr 01 22:05:46 ultimaarch kernel: [<ffffffff815046ff>] tracesys+0xe1/0xe6

Revision history for this message
zelluz (thoremi) wrote :
zelluz (thoremi)
Changed in qemu:
status: New → In Progress
zelluz (thoremi)
summary: - Windows guest freezes after exiting an 3D application on guest.
+ Windows guest freezes while using USB passthrough.
zelluz (thoremi)
description: updated
zelluz (thoremi)
description: updated
Revision history for this message
zelluz (thoremi) wrote : Re: Windows guest freezes while using USB passthrough.
Download full text (7.5 KiB)

More technical information about Rocksmith Real Tone Cable(almost all the way to the bottom, beneath "Rocksmith Real Tone Cable):
http://forums.ubi.com/showthread.php/802854-Rocksmith-2014-PC-Configuration-and-FAQ-Forums

Here is the output of lsusb -vvv:

Bus 003 Device 005: ID 12ba:00ff Licensed by Sony Computer Entertainment America Rocksmith Guitar Adapter
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 16
  idVendor 0x12ba Licensed by Sony Computer Entertainment America
  idProduct 0x00ff Rocksmith Guitar Adapter
  bcdDevice 1.00
  iManufacturer 1 Hercules
  iProduct 2 Rocksmith USB Guitar Adapter
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 152
    bNumInterfaces 3
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0x80
      (Bus Powered)
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 0
      bInterfaceClass 1 Audio
      bInterfaceSubClass 1 Control Device
      bInterfaceProtocol 0
      iInterface 0
      AudioControl Interface Descriptor:
        bLength 9
        bDescriptorType 36
        bDescriptorSubtype 1 (HEADER)
        bcdADC 1.00
        wTotalLength 39
        bInCollection 1
        baInterfaceNr( 0) 1
      AudioControl Interface Descriptor:
        bLength 12
        bDescriptorType 36
        bDescriptorSubtype 2 (INPUT_TERMINAL)
        bTerminalID 2
        wTerminalType 0x0201 Microphone
        bAssocTerminal 0
        bNrChannels 1
        wChannelConfig 0x0001
          Left Front (L)
        iChannelNames 0
        iTerminal 0
      AudioControl Interface Descriptor:
        bLength 9
        bDescriptorType 36
        bDescriptorSubtype 3 (OUTPUT_TERMINAL)
        bTerminalID 7
        wTerminalType 0x0101 USB Streaming
        bAssocTerminal 0
        bSourceID 10
        iTerminal 0
      AudioControl Interface Descriptor:
        bLength 9
        bDescriptorType 36
        bDescriptorSubtype 6 (FEATURE_UNIT)
        bUnitID 10
        bSourceID 2
        bControlSize 1
        bmaControls( 0) 0x03
          Mute Control
          Volume Control
        bmaControls( 1) 0x00
        iFeature 0
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 1
      bAlternateSetting 0
      bNumEndpoints ...

Read more...

zelluz (thoremi)
description: updated
zelluz (thoremi)
description: updated
summary: - Windows guest freezes while using USB passthrough.
+ Windows guest freezes while using passthrough on USB audio recorder.
zelluz (thoremi)
Changed in qemu:
status: In Progress → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.