Re: Scatter-gather list constraints

From: Alan Stern
Date: Wed Jun 25 2008 - 10:23:28 EST


On Wed, 25 Jun 2008, FUJITA Tomonori wrote:

> > For example, suppose an I/O request starts out with two S-G elements
> > of 1536 bytes and 2048 bytes respectively, and the DMA requirement is
> > that all elements except the last must have length divisible by 1024.
> > Then the request could be broken up into three requests of 1024, 512,
> > and 2048 bytes.
>
> I can't say that it's easy to implement a clean mechanism to break up
> a request into multiple requests until I see a patch.

And I can't write a patch without learning a lot more about how the
block core works.

> What I said is that you think that this is about extending something
> in the block layer but it's about adding a new concept to the block
> layer.

Is it? What does the block layer do when it receives an I/O request
that don't satisfy the other constraints (max_sectors or
dma_alignment_mask, for example)?

> > Is it reasonable to have 120-KB bounce buffers?
>
> The block layer does. Why do you think that USB can't?

Why do you think I think that USB can't? I didn't ask whether it was
_possible_; I asked whether it was _reasonable_.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/