Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Feb 2009 20:24:50 -0800
From:      Andrew Thompson <thompsa@FreeBSD.org>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: USB2 patches
Message-ID:  <20090202042450.GA45701@citylink.fud.org.nz>
In-Reply-To: <200902011938.48670.hselasky@c2i.net>
References:  <200902011220.18745.hselasky@c2i.net> <200902011922.16810.hselasky@c2i.net> <20090201.112756.1320088159.imp@bsdimp.com> <200902011938.48670.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Feb 01, 2009 at 07:38:47PM +0100, Hans Petter Selasky wrote:
> On Sunday 01 February 2009, M. Warner Losh wrote:
> > In message: <200902011922.16810.hselasky@c2i.net>
> >
> >             Hans Petter Selasky <hselasky@c2i.net> writes:
> > : In your patch you remove all error checking! If the taskqueue system does
> > : not have an API function that can tell if the taskqueue is being drained
> > : from inside the taskqueue callback, the taskqueue system has to be
> > : modified! It cannot replace the existing system like it is now!
> >
> > Why does the taskqueue system need to provide that?  Why can't the
> > driver set a dying flag in the softc to communicate this fact to the
> > taskqueue tasks?
> 
> That's also possible. Thomas already made a "struct usb2_task" I think, where 
> this flag could be added.

I have been thinking about this more. The main issue is usb requests
timing out when the device is yanked, the udev structure should keep
state on this and set it as detached before calling the device detach
routine. This will allow usb requests that may be running in the
taskqueue to abort gracefully and taskqueue should drain quite easily.

If the device hasnt been yanked then it will have no issues draining as
the queued tasks will happily run to completion.


Andrew



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