Date: Fri, 1 Dec 2006 23:32:10 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-usb@freebsd.org Cc: Alfred Perlstein <alfred@freebsd.org>, freebsd-smp@freebsd.org Subject: Re: RFC: Fixing USB ethernet for FreeBSD 7.0. Message-ID: <200612012332.12796.hselasky@c2i.net> In-Reply-To: <20061201194323.GT38808@elvis.mu.org> References: <20061201191731.GR38808@elvis.mu.org> <20061201.122433.-749245269.imp@bsdimp.com> <20061201194323.GT38808@elvis.mu.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 01 December 2006 20:43, Alfred Perlstein wrote: > * M. Warner Losh <imp@bsdimp.com> [061201 11:30] wrote: > > Have you looked at the usb work that Hans Petter Selasky > > at http://www.turbocat.net/~hselasky/usb4bsd yet? > > I just did, while it solves a lock order problem, this doesn't > appear to solve the programmitic issues, namely multiple usb IOs > requiring callbacks and how to issue a series of complex usb > IOs from interrupt context. > > Basically, I need to be able to do USB IO as if I was doing normal > BUS IO, usb does not offer this in interrupt context except as a > series of callbacks that appear to be programmatically impossible > to implement. Yes, yes, this is supported. See the USBD_USE_POLLING flag. > > Have a look at if_aue.c, then look at any of the error cases that > might be called from interrupt context, they wind up doing sync IO > to the device which is illegal (sleeping while holding a driver > lock). > > Hans Petter Selasky's work is nice, however it doesn't solve > these issues, the lock would still have to be held. You don't want to do things without holding a lock. > Do you understand that I'm trying to give usb ethernet the > same ease of programming that other devices on a "fast bus" > have? Yes, but that comes at an expense. Higher CPU usage, more delay. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200612012332.12796.hselasky>