Searched hist:"8928 c9c43df1a0eeda1ae2e9582beb34dce49330" (Results 1 – 1 of 1) sorted by relevance
/openbmc/qemu/hw/usb/ |
H A D | hcd-uhci.c | diff 8928c9c43df1a0eeda1ae2e9582beb34dce49330 Wed Oct 24 11:31:19 CDT 2012 Hans de Goede <hdegoede@redhat.com> uhci: Retry to fill the queue while waiting for td completion
If the guest is using multiple transfers to try and keep the usb bus busy / used at maximum efficiency, currently we would see / do the following:
1) submit transfer 1 to the device 2) submit transfer 2 to the device 3) report transfer 1 completion to guest 4) report transfer 2 completion to guest 5) submit transfer 1 to the device 6) report transfer 1 completion to guest 7) submit transfer 2 to the device 8) report transfer 2 completion to guest etc.
So after the initial submission we would effectively only have 1 transfer in flight, rather then 2. This is caused by us not checking the queue for addition of new transfers by the guest (ie the resubmission of a recently finished transfer), while waiting for a pending transfer to complete. This patch does add a check for this, changing the sequence to:
1) submit transfer 1 to the device 2) submit transfer 2 to the device 3) report transfer 1 completion to guest 4) submit transfer 1 to the device 5) report transfer 2 completion to guest 6) submit transfer 2 to the device etc.
Thus keeping 2 transfers in flight (most of the time, and always 1), as intended by the guest.
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|