qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/12] RFC: usb: input pipelining support and other speedups
@ 2012-10-08  7:51 Hans de Goede
  2012-10-08  7:51 ` [Qemu-devel] [PATCH 01/12] usb-redir: When a packet contains data on a stall, ignore the stall Hans de Goede
                   ` (11 more replies)
  0 siblings, 12 replies; 19+ messages in thread
From: Hans de Goede @ 2012-10-08  7:51 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel

This patchset started out as adding support for pipelining of input bulk
transfers, although input pipelining is a bit tricky to do, there are 2 good
reasons to do it:

1) Performance, I expect this to ie significantly speed-up reading from USB
mass storage devices.

2) Currently reading from a USB<->serial converter, ie a pl2303 based one is
unreliable when the serial transport is not using flowcontrol. The problem
is that 115200 bps takes aprox 200 64 bytes packets / sec, which means we
must not exceed a roundtip time average of 5 ms over a period of 20 ms. If
within any 20 ms period we exceed that round trip time average the internal
buffer of the pl2303 will likely overflow. Input pipelining greatly improve
things here as: it combines the previous 4 packets submitted per device-driver
level read into 1 big read, reducing the number of packets / sec by a factor 4,
and it allows to have multiple reads outstanding.

I had working on this on my mind for a while because of 1), and 2) has made
me spend the necessary time to get this working now. Even though 2 was my
main reason to start working on this now, most of my testing sofar has
focussed on 1, resulting in some more speedup patches and a total improvement
of the read speed from a cheap USB thumb drive from 4.4 MB/s to 10.8 MB/s or
a factor of 2.4 !

The reason this patch-set is currently still RFC is because I need to run more
tests wrt 2). Despite the RFC status reviews are very much welcome now!

Regards,

Hans

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2012-10-09 14:18 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-08  7:51 [Qemu-devel] [PATCH 00/12] RFC: usb: input pipelining support and other speedups Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 01/12] usb-redir: When a packet contains data on a stall, ignore the stall Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 02/12] usb-redir: Add support for 32 bits bulk packet length Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 03/12] usb-host-linux: Only enabling pipeling for output endpoints Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 04/12] usb: Add support for input pipelining Hans de Goede
2012-10-08 12:50   ` Gerd Hoffmann
2012-10-08 14:50     ` Hans de Goede
2012-10-09  9:21       ` Gerd Hoffmann
2012-10-09 10:40         ` Hans de Goede
2012-10-09 13:31           ` Gerd Hoffmann
2012-10-09 14:19             ` Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 05/12] uhci: Properly unmap packets on cancel / invalid pid Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 06/12] uhci: Move checks to continue queuing to uhci_fill_queue() Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 07/12] uhci: Add support for input queuing Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 08/12] ehci: Get rid of packet tbytes field Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 09/12] ehci: Set int flag on a short input packet Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 10/12] ehci: Add support for input queuing Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 11/12] ehci: Improve latency of interrupt delivery and async schedule scanning Hans de Goede
2012-10-08  7:51 ` [Qemu-devel] [PATCH 12/12] ehci: Speed up the timer of raising int from the async schedule Hans de Goede

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).