Hi all,
We pass-throughed USB 2.0 disk to guest using usb-host (qemu option: -usb -device
usb-ehci,id=ehci -device usb-host,bus=ehci.0,hostbus=2,hostaddr=1) on xen-4.2.0 and qemu-1.2.2 (also try it on qemu 1.4.0) , it worked fine for reading and writing data, but failed when format it in a windows Guest OS such as winXP,win7,win2003. We captured
usb operations on Dom0, found below logs:
...
Feb 1 11:17:50 linux-bLKBXy kernel: [66642.325169] usb 6-1: usbdev_do_ioctl: REAPURBNDELAY
Feb 1 11:17:50 linux-bLKBXy kernel: [66642.325172] usb 6-1: usbdev_do_ioctl: REAPURBNDELAY
Feb 1 11:17:50 linux-bLKBXy kernel: [66642.325176] usb 6-1: usbdev_do_ioctl: REAPURBNDELAY
Feb 1 11:17:50 linux-bLKBXy kernel: [66642.326757] usb 6-1: urb complete
Feb 1 11:17:50 linux-bLKBXy kernel: [66642.326761] usb 6-1: userurb 00007fa196d04b10, ep2 bulk-out,
actual_length 4096 status 0
Feb 1 11:17:50 linux-bLKBXy kernel: [66642.326780] usb 6-1: usbdev_do_ioctl: REAPURBNDELAY
Feb 1 11:17:50 linux-bLKBXy kernel: [66642.326787] usb 6-1: usbdev_do_ioctl: REAPURBNDELAY
--- stuck here about one minute
Feb 1 11:18:50 linux-bLKBXy kernel: [66702.289239] usb 6-1: usbdev_do_ioctl: DISCARDURB
--- received a DISCARD instruction
Feb 1 11:18:50 linux-bLKBXy kernel: [66702.289398] usb 6-1: urb complete
Feb 1 11:18:50 linux-bLKBXy kernel: [66702.289403] usb 6-1: userurb 00007fa196d04d00, ep2 bulk-out,
actual_length 512 status -2
Feb 1 11:18:50 linux-bLKBXy kernel: [66702.289437] usb 6-1: usbdev_do_ioctl: REAPURBNDELAY
Feb 1 11:18:50 linux-bLKBXy kernel: [66702.289450] usb 6-1: usbdev_do_ioctl: REAPURBNDELAY
Feb 1 11:18:50 linux-bLKBXy kernel: [66702.428985] usb 6-1: usbdev_do_ioctl: RESET
-- received a reset instruction to retry
We are wondering why the usb operation will be stuck one minute and then DISCARD
instruction was issued. Was DISCARD instruction triggered by a time out in format software? Any ideas? Thanks.
BTW, a usb format tool diskgenius (
http://www.diskgenius.cn/ ) can format the pass-throughed USB 2.0 device successfully in windows guest. In addition, Linux guests don't have this issue. Looks software will use different
way to format a USB disk. We attached usb operation logs: 1) windows format log (failure) 2) diskgenius format log (success) 3) linux guest format (success)
-Gonglei