Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Sep 2008 22:08:42 +0200
From:      Volker <volker@vwsoft.com>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-usb@freebsd.org, Antony Mawer <fbsd-current@mawer.org>
Subject:   Re: "legacy" usb stack fixes
Message-ID:  <48C97ACA.70307@vwsoft.com>
In-Reply-To: <200809111013.23994.hselasky@c2i.net>
References:  <20080819211814.6CD685B4D@mail.bitblocks.com> <48B0EA50.2090105@mawer.org> <48B3299F.5080101@vwsoft.com> <200809111013.23994.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48C97ACA.70307>