blob: edd97a207b2728e69f4b5b5880deee16934a9c1c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
usbredir slow when multi bulk packet per second
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,
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
------------
The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting older bugs to "Incomplete" now.
If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Or mark it as "Fix Released" if the problem has been solved with a newer version of QEMU already. Thank you and sorry for the inconvenience.
[Expired for QEMU because there has been no activity for 60 days.]
|