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

2007-08-31 Thread Jens Axboe
On Fri, Aug 31 2007, Christoph Lameter wrote: > On Fri, 31 Aug 2007, Jens Axboe wrote: > > > > Ok. So another solution maybe to limit the blocksizes that can be used > > > with a device? > > > > That'd work for creation, but not for moving things around. > > What do you mean by moving things ar

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

2007-08-31 Thread Jörn Engel
On Fri, 31 August 2007 08:22:45 -0700, Christoph Lameter wrote: > > What do you mean by moving things around? Creation binds a filesystem to a > device. Create the filesystem on a usb key, then move it to the next machine, i suppose. Or on any other movable medium, including disks, nbd, iSCSI,.

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

2007-08-31 Thread Christoph Lameter
On Fri, 31 Aug 2007, Dmitry Monakhov wrote: > > Ok. So another solution maybe to limit the blocksizes that can be used > > with a device? > IMHO It is not good because after fs was created with big blksize it's image > cant be used on other devices. Ok so a raw copy of the partition would do th

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

2007-08-31 Thread Christoph Lameter
On Fri, 31 Aug 2007, Jens Axboe wrote: > > Ok. So another solution maybe to limit the blocksizes that can be used > > with a device? > > That'd work for creation, but not for moving things around. What do you mean by moving things around? Creation binds a filesystem to a device. > > H.. W

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

2007-08-31 Thread Dmitry Monakhov
On 00:52 Fri 31 Aug , Christoph Lameter wrote: > On Fri, 31 Aug 2007, Jens Axboe wrote: > > > They have nothing to do with each other, you are mixing things up. It > > has nothing to do with the device being able to dma into that memory or > > not, we have fine existing infrastructure to handl

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

2007-08-31 Thread Jens Axboe
On Fri, Aug 31 2007, Christoph Lameter wrote: > On Fri, 31 Aug 2007, Jens Axboe wrote: > > > They have nothing to do with each other, you are mixing things up. It > > has nothing to do with the device being able to dma into that memory or > > not, we have fine existing infrastructure to handle tha

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

2007-08-31 Thread Christoph Lameter
On Fri, 31 Aug 2007, Jens Axboe wrote: > They have nothing to do with each other, you are mixing things up. It > has nothing to do with the device being able to dma into that memory or > not, we have fine existing infrastructure to handle that. But different > hardware have different characteristi

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

2007-08-31 Thread Jens Axboe
On Fri, Aug 31 2007, Christoph Lameter wrote: > On Fri, 31 Aug 2007, Jens Axboe wrote: > > > > 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. > > > > W

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

2007-08-31 Thread Christoph Lameter
On Fri, 31 Aug 2007, Jens Axboe wrote: > > 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 segm

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

2007-08-31 Thread Jens Axboe
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

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

2007-08-31 Thread Christoph Lameter
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 cann

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

2007-08-31 Thread Jens Axboe
On Fri, Aug 31 2007, Christoph Lameter wrote: > On Fri, 31 Aug 2007, Jens Axboe wrote: > > > > So if we try to push a too large buffer down with submit_bh() we get a > > > failure. > > > > Only partly, you may be violating a number of other restrictions (size > > is many things, not just length

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

2007-08-31 Thread Christoph Lameter
On Fri, 31 Aug 2007, Jens Axboe wrote: > > So if we try to push a too large buffer down with submit_bh() we get a > > failure. > > Only partly, you may be violating a number of other restrictions (size > is many things, not just length of the data). Could you be more specific? - To unsubscribe

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

2007-08-30 Thread Jens Axboe
On Thu, Aug 30 2007, Christoph Lameter wrote: > This may already be handled? > > submit_bh() calls submit_bio() which calls __generic_make_request() and > there we do: > > if (unlikely(bio_sectors(bio) > q->max_hw_sectors)) { > printk("bio too big device %

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

2007-08-30 Thread Christoph Lameter
This may already be handled? submit_bh() calls submit_bio() which calls __generic_make_request() and there we do: if (unlikely(bio_sectors(bio) > q->max_hw_sectors)) { printk("bio too big device %s (%u > %u)\n", bdevname(bio

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

2007-08-30 Thread Christoph Lameter
On Thu, 30 Aug 2007, Dmitry Monakhov wrote: > On 12:06 Tue 28 Aug , [EMAIL PROTECTED] wrote: > > Use page_cache_xxx in fs/buffer.c. > submit_bh wasn't changed this means what bio pages may have huge size > without respect to queue reqsrictions (q->max_hw_segments, and etc) > At least driver/md

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

2007-08-30 Thread Dmitry Monakhov
On 12:06 Tue 28 Aug , [EMAIL PROTECTED] wrote: > Use page_cache_xxx in fs/buffer.c. submit_bh wasn't changed this means what bio pages may have huge size without respect to queue reqsrictions (q->max_hw_segments, and etc) At least driver/md/raid0 will be broken by you'r patch. > > We have a sp

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

2007-08-28 Thread clameter
Use page_cache_xxx in fs/buffer.c. We have a special situation in set_bh_page() since reiserfs calls that function before setting up the mapping. So retrieve the page size from the page struct rather than the mapping. Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> --- fs/buffer.c | 110 ++