Messages in this thread | | | Date | Thu, 26 Jun 2008 11:06:03 +0900 | Subject | Re: Scatter-gather list constraints | From | FUJITA Tomonori <> |
| |
On Wed, 25 Jun 2008 10:23:00 -0400 (EDT) Alan Stern <stern@rowland.harvard.edu> wrote:
> 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)?
As I explained, you need something new.
I don't think that max_sectors works as you expect.
dma_alignment_mask is not used in the FS path. And I think that dma_alignment_mask doens't solve your problems.
> > > 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_.
What the block layer does is reasonable with regard to this, I think.
| |