On Wed, 13 Apr 2005, David Brownell wrote:
> > That was the main motivation, although I'd had this in the back of my mind
> > for a long time. Yes, it would be nice to see some real numbers for those
> > latencies. I suppose I could add some high-precision timer stuff to the
> > driver, to see just how much time actually is spent with interrupts
> > disabled...
>
> I've deferred doing HCD performance work, on the grounds that usbcore
> has -- until relatively recently! -- not been correct enough to trust.
>
> Over the last year, I think most of those correctness issues have
> been getting resolved. Which means that maybe it's finally time to
> do some performance work...
Here are the results of a quick test. I attached a flash storage device
and measured the times spent with the spinlock held and interrupts
disabled while doing
dd if=/dev/sda bs=1M count=16 of=/dev/null
The two main places where the driver disables interrupts for long periods
are in the enqueue routine and the IRQ handler. The results varied
somewhat from run to run but they were all in the same ballpark. The
tables below show the number of events of each sort and their average and
maximum times. All times are in microseconds.
On a Pentium IV running at 1.8 GHz:
Count Avg Max
Enqueue: 1148 140 706
IRQ: 2175 101 746
On a Pentium II running at 350 MHz:
Count Avg Max
Enqueue: 1227 511 3000
IRQ: 2769 248 1935
In my opinion, 740 us is a long time to leave interrupts disabled and 3 ms
is unacceptable. People working on real-time systems often prefer to have
interrupt latencies in the vicinity of 10-50 us.
It's true that other changes I have planned for the driver will reduce
these values, although it's impossible to predict by how much. However I
think this gives a pretty good indication that splitting the driver into a
top- and bottom-half is worth considering.
Alan Stern
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel