summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/1811653
blob: c072477b917721073876f3b86a4a257f4584b28d (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
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
------------