Re: [11/36] Use page_cache_xxx in fs/buffer.c

Christoph Lameter
2007-08-31T07:17:50Z

On Fri, 31 Aug 2007, Jens Axboe wrote:

> > Could you be more specific?
>
> Size of a single segment, for instance. Or if the bio crosses a dma
> boundary. If your block is 64kb and the maximum segment size is 32kb,
> then you would need to clone the bio and split it into two.

A DMA boundary cannot be crossed AFAIK. The compound pages are aligned to
the power of two boundaries and the page allocator will not create pages
that cross the zone boundaries.

It looks like the code will correctly signal a failure if you try to write
a 64k block on a device with a maximum segment size of 32k. Isnt this
okay? One would not want to use a larger block size than supported by the
underlying hardware?

> Things like that. This isn't a problem with single page requests, as we
> based the lower possible boundaries on that.

submit_bh() is used to submit a single buffer and I think that was our
main concern here.