On Tue, Sep 18, 2001 at 01:20:37PM -0700, David Brownell wrote:
> > > So... has anyone thought about what it would take for Linux to support a
> > > single URB with multiple scatter-gather elements?
> > >
> > > AFAIK, an URB needs a single continuous memory block for a transfer. It
> > > would be nice if we could use scatter-gather instead.
> > >
> > > Any thoughts?
>
> Shouldn't request queuing be able to solve that problem? Just
> create one URB per s/g segment (e.g. from the SCSI layer),
> queue, and be done. It's just a question of which level you
> do the s/g at ... I'd rather keep it out of usbcore, that's quite
> complex enough as it is!!
Ahh... but there is a difference between 1 URB for 128 bytes and 2 URBs for
64 bytes each. Think of the short-packet scenarios... what I want is
really the behavior of a single URB. I could just submit URBs one at a
time (like I do now), but I'm guessing that if the core understood
scatter-gather, it would (a) give me the behavior I want, (b) be fast, and
(c) be clearer code at the higher levels.
Making sure all scatter buffers are multiples of endpoint size isn't an
issue for me... and it seems like a trivial restriction to place on the
interface.
Matt
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
What, are you one of those Microsoft-bashing Linux freaks?
-- Customer to Greg
User Friendly, 2/10/1999
PGP signature