Public bug reported: QEMU Ver: all version Client: virt-viewer by spice Guest VM: win7 Bug description: Use Qemu 2.1 or later with usbredir, When I redirect a bulk usb-device from virt-viewer client,the bulk-usb-device driver or app in GuestVM will send 50 bulk-urb per times. In VM, using the usblyzer to monitor the usb packet, it show these 50 bulk-urb packet (24576 bytes per urb) send in 1ms, But in the QEMU VM log, It shows as below ========================= 2019-01-14T08:27:26.096809Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.105680Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.108219Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.116742Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.119242Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.129851Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.132349Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.141248Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.144932Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.154035Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 =========================
It shows that the bulk packet is single thread send and recv, per bulk packet will use 10-20ms, all 50 bulk-packets will use 500~1000ms, so the in the VM, bulk-urb will timeout always! How to send the bulk packet by multithread to speedup the bulk-urb send and recv, for example: ------------ bulk-out ep 86 stream 0 len 49152 id xxxx1 bulk-out ep 86 stream 0 len 49152 id xxxx2 bulk-out ep 86 stream 0 len 49152 id xxxx3 bulk-out ep 86 stream 0 len 49152 id xxxx4 bulk-out ... bulk-out ep 86 stream 0 len 49152 id xxxx50 ... bulk-in status 0 ep 86 stream 0 len 49152 id xxxx1 bulk-in status 0 ep 86 stream 0 len 49152 id xxxx2 bulk-in status 0 ep 86 stream 0 len 49152 id xxxx3 bulk-in status 0 ep 86 stream 0 len 49152 id xxxx4 bulk-out ... bulk-in status 0 ep 86 stream 0 len 49152 id xxxx50 ------------ ** Affects: qemu Importance: Undecided Status: New ** Description changed: QEMU Ver: all version Client: virt-viewer by spice Guest VM: win7 Bug description: - Use Qemu 2.1 or later with usbredir, When I redirect a bulk usb-device from virt-viewer client, - the bulk-usb-device driver or app in GuestVM will send 50 bulk-urb per times. - In VM, using the usblyzer to monitor the usb packet, it show these 50 bulk-urb packet send in 1ms, + Use Qemu 2.1 or later with usbredir, When I redirect a bulk usb-device from virt-viewer client,the bulk-usb-device driver or app in GuestVM will send 50 bulk-urb per times. + In VM, using the usblyzer to monitor the usb packet, it show these 50 bulk-urb packet send in 1ms, But in the QEMU VM log, It shows as below ========================= 2019-01-14T08:27:26.096809Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.105680Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.108219Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.116742Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.119242Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.129851Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.132349Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.141248Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.144932Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.154035Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 ========================= - It shows that the bulk packet is single thread send and recv, per bulk + It shows that the bulk packet is single thread send and recv, per bulk packet will use 10-20ms, all 50 bulk-packets will use 500~1000ms, so the in the VM, bulk-urb will timeout always! - How to send the bulk packet by multithread to speedup the bulk-urb send and recv, for example: + How to send the bulk packet by multithread to speedup the bulk-urb send and recv, for example: ------------ - bulk-out ep 86 stream 0 len 49152 id xxxx1 - bulk-out ep 86 stream 0 len 49152 id xxxx2 - bulk-out ep 86 stream 0 len 49152 id xxxx3 - bulk-out ep 86 stream 0 len 49152 id xxxx4 - bulk-out ... - bulk-out ep 86 stream 0 len 49152 id xxxx50 + bulk-out ep 86 stream 0 len 49152 id xxxx1 + bulk-out ep 86 stream 0 len 49152 id xxxx2 + bulk-out ep 86 stream 0 len 49152 id xxxx3 + bulk-out ep 86 stream 0 len 49152 id xxxx4 + bulk-out ... + bulk-out ep 86 stream 0 len 49152 id xxxx50 ... - bulk-in status 0 ep 86 stream 0 len 49152 id xxxx1 - bulk-in status 0 ep 86 stream 0 len 49152 id xxxx2 - bulk-in status 0 ep 86 stream 0 len 49152 id xxxx3 - bulk-in status 0 ep 86 stream 0 len 49152 id xxxx4 - bulk-out ... - bulk-in status 0 ep 86 stream 0 len 49152 id xxxx50 + bulk-in status 0 ep 86 stream 0 len 49152 id xxxx1 + bulk-in status 0 ep 86 stream 0 len 49152 id xxxx2 + bulk-in status 0 ep 86 stream 0 len 49152 id xxxx3 + bulk-in status 0 ep 86 stream 0 len 49152 id xxxx4 + bulk-out ... + bulk-in status 0 ep 86 stream 0 len 49152 id xxxx50 ------------ -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1811653 Title: usbredir slow when multi bulk packet per second Status in QEMU: New Bug description: QEMU Ver: all version Client: virt-viewer by spice Guest VM: win7 Bug description: Use Qemu 2.1 or later with usbredir, When I redirect a bulk usb-device from virt-viewer client,the bulk-usb-device driver or app in GuestVM will send 50 bulk-urb per times. In VM, using the usblyzer to monitor the usb packet, it show these 50 bulk-urb packet (24576 bytes per urb) send in 1ms, But in the QEMU VM log, It shows as below ========================= 2019-01-14T08:27:26.096809Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.105680Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.108219Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.116742Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.119242Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.129851Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.132349Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.141248Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.144932Z qemu-kvm: usb-redir: bulk-out ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 2019-01-14T08:27:26.154035Z qemu-kvm: usb-redir: bulk-in status 0 ep 86 stream 0 len 49152 id 2114122112 0x7f0ffa300b40 ========================= It shows that the bulk packet is single thread send and recv, per bulk packet will use 10-20ms, all 50 bulk-packets will use 500~1000ms, so the in the VM, bulk-urb will timeout always! How to send the bulk packet by multithread to speedup the bulk-urb send and recv, for example: ------------ bulk-out ep 86 stream 0 len 49152 id xxxx1 bulk-out ep 86 stream 0 len 49152 id xxxx2 bulk-out ep 86 stream 0 len 49152 id xxxx3 bulk-out ep 86 stream 0 len 49152 id xxxx4 bulk-out ... bulk-out ep 86 stream 0 len 49152 id xxxx50 ... bulk-in status 0 ep 86 stream 0 len 49152 id xxxx1 bulk-in status 0 ep 86 stream 0 len 49152 id xxxx2 bulk-in status 0 ep 86 stream 0 len 49152 id xxxx3 bulk-in status 0 ep 86 stream 0 len 49152 id xxxx4 bulk-out ... bulk-in status 0 ep 86 stream 0 len 49152 id xxxx50 ------------ To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1811653/+subscriptions