Subject: uhci kernel code and uvisor interface.
To: None <tech-kern@netbsd.org>
From: Scott Presnell <srp@tworoads.net>
List: tech-kern
Date: 04/09/2003 09:28:30
Hi Folks,
	I'm running a modified NetBSD-1.5.2/i386 kernel that
includes patches to the uhci USB kernel code.  I've patched uhci.c
to version 1.125, to take advantage of the "bandwidth reclamation"
concept for a particular device+driver (Intel Pocket Concert MP3
player). This change increased the throughput for this device about
10x.

Unfortunately this has also impacted the uvisor (and I guess ucom)
interface.

Using pilot-xfer (pilot-link{,-libs} 0.11.7 per pkgsrc) and modifying
the code to show throughput, I've found with the bandwidth reclamation
code in place a slowdown to about 0.25x (from 2-4KB/s to 0.5 KB/s)
for large Palm databases. This is with a Handspring Visor rev 1.00/1.00

(Going back to the 1.5.2 stock code with the same userland code raises
the rate back to where it was; not that it was great, but it wasn't
nearly as painful.)

I note that this is still in the src/sys/dev/usb/TODO:

===
General:
--------

Figure out why uvisor is so slow.
Try to get specs, and check if Linux driver is really right.
===

How do 1.6 users find the uvisor interface?

Can anyone point me to uvisor/ucom/uhci revision levels or partcular patches
that provide for reasonable speed for the uvisor interface?  I'm not finding
any pointers in the cvs notes that would help me determine this.

	Thanks for any clues or help.

	- Scott