Greg KH wrote:
>   From now until July 1, ...
> 
>   Let me (and the linux-usb-devel list) know about any thoughts you have
>   pertaining to liking one of the drivers over the other one.  Speed
>   tests, size tests, code pretty tests, comment spelling tests,
>   documentation tests, you name it, I want to know about it. 
> 
>   ...

I confess I've not done much real UHCI testing, but I did do a bit
of basic code analysis (object and source) against versions of the
UHCI HCDs in the 2.5.22 kernel.

- The "uhci-hcd" driver is about 10% larger than "usb-uhci-hcd"
   in terms of object size (even after disabling the /proc/driver
   code!) ... and both are significantly larger than the OHCI and
   EHCI drivers.  Counting code+data+bss:

     21337 uhci-hcd
     19308 usb-uhci-hcd
     17936 ehci-hcd
     14091 ohci-hcd

   On a pure object-size basis, "usb-uhci-hcd" wins here.

- Given the basic similarities between all that hardware (the only
   "big" thing that needs to differ much is scanning the HC lists
   to collect finished transactions), I think both UHCIs can very
   likely be trimmed down further:  the known differences can't
   account for that much of a size difference.  (EHCI is a bit more
   complex than UHCI ... by rights, it should be the fattest HCD!
   I heard MSFT's is over 100KBytes ... :)

- Only "uhci-hcd" has any BSS at all -- two words.  One of those
   words is a bug:  "errbuf" should be HCD-private, not shared
   between drivers, or should be protected by a driver-global lock.
   (Likely not dangerous, and affecting only SMP today.)

   (All have the same amount of initialized data.)

- Comparing source size, the two UHCIs are about the same in terms
   of bytes, but "uhci-hcd" has more lines ... with many of them
   being "non-functional" /proc/driver support.  Given the object
   code results above, that suggests more whitespace or comments.

   I don't think either is compellingly better at commenting, though
   it's nice to have some text in "uhci-hcd" describing locking
   strategy.  (Those are paired with cryptic "P:" comments, evening
   things out ... :)

- It's hard to see (and compare!!) internal structure in "uhci-hcd"
   since it doesn't split out memory and HC queue primitives in different
   source files:  it's all merged with the higher level glue.

- I see that "uhci-hcd" added some big-endian support.  Has anyone
   had a chance to test that?  (Like on a PPC box.)  I know that the
   big-endian support on "usb-uhci(-hcd)" has been around for a very
   long time now.

I'll send along some less general comments about the code later.

- Dave






-------------------------------------------------------
Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to