Re: RFC: Fixing USB ethernet for FreeBSD 7.0.

Hans Petter Selasky <[email protected]>
Newsgroups gmane.os.freebsd.devel.usb,gmane.os.freebsd.devel.smp
Message-ID <[email protected]>
On Friday 01 December 2006 20:43, Alfred Perlstein wrote:
> * M. Warner Losh <[email protected]> [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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.