"legacy" usb stack fixes

Volker volker at vwsoft.com
Thu Sep 11 20:09:03 UTC 2008


On 09/11/08 10:13, Hans Petter Selasky wrote:
> On Monday 25 August 2008, Volker wrote:
>>
>> Anyway, I've already had those crashes even with the "new" usb stack
>> (but it doesn't happen everytime - YMMV).
>>
> 
> Hi,
> 
> I also see crashes with my new stuff and the umass driver when the USB device 
> is un-plugged too early. The backtraces I've got so far does not indicate a 
> USB problem, though ....
> 
> --HPS
> 

// dropped current@ from CC

Hans Petter,

the device unplug problem is not just with usb, but these devices are
the most frequent unplugged devices so far.

Early this week, I discovered a new problem. I've fetched fresh RELENG_7
sources, patched your usb stack in and recompiled kernel (using usb, not
usb2).

I've seen situations with a process holding open file descriptors for a
ugen device being killed but a thread was still hanging in "usbdrain"
state (sleeping on a mutex for draining). The process is still holding
open file descriptors (I see output from ``fstat | grep ugen'' listing
the already killed process), even while the process itself is already
killed and not in the process list as a whole.

Only a thread of that former process can be seen by ``ps -alxcH'', but
it can't be killed.

I'm pretty sure I'm able to patch kern_exit.c to have that process being
freed completely but I'm also pretty sure, this will just kill a symptom
but not the source. While in that situation, the usb port does not react
to plug/unplug events anymore.

I haven't been able to debug that situation as I do have too much stress
at other places as well. Probably I'll find the time tomorrow for debugging.

BTW, can you give a quick explanation about usb2? What's different,
better? What needs to be done at the driver side to port something over
to usb2?

Thanks,

Volker



More information about the freebsd-usb mailing list