On Fri, Aug 31 2007, Christoph Lameter wrote: > 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. With a 64k page and a dma boundary of 0x7fff, that's two segments. > 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? That's just the size in sectors limitation again. And that also needs to be handled, the fact that it currently errors out is reassuring but definitely a long term solution. You don't want to knowingly setup such a system where the fs block size is larger than what the hardware would want, but it should work. You could be moving hardware around, for recovery or otherwise. > > 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. And how large can that be? -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html