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>