Re: [linux-usb-devel] usbfs2: Why asynchronous I/O?

Greg KH
2007-02-27T00:21:41Z

On Mon, Feb 26, 2007 at 12:54:31AM -0800, Sarah Bailey wrote:
> Yes, a sane interface to the USRP was one of the main motivations for
> the new USB filesystem. It remains to be seen whether we need a
> non-standard interface like io_submit, or whether threads with blocking
> I/O is fast enough and has the right semantics.

So, just for the sake of argument, how would one submit multiple urbs to
a single endpoint to ensure that the pipe is full with blocking I/O?
Would they have to:

- open endpoint
- create thread 1
- create thread 2
- create thread 3
- create thread 4
- send first packet to thread 1 to have it write to the endpoint.
- send next packet to thread 2 to have it write to the endpoint.
... and so on?

This seems very "hard" on userspace for something as simple as "I want
to send this data stream to the USB device as fast as is possible".

With async I/O you can just:
- open endpoint
- send first packet to endpoint with async write
- send second packet to endpoint
... and so on

I'm all for using threads in userspace, as they are good ideas and very
powerful, but for a single data stream, they really seem like a complex
solution.

thanks,

greg k-h