Re: [patch 10/21] buffer heads: Support slab defrag

Christoph Lameter
2008-05-16T17:01:55Z

On Fri, 16 May 2008, David Chinner wrote:

> On Thu, May 15, 2008 at 10:42:15AM -0700, Christoph Lameter wrote:
> > On Mon, 12 May 2008, David Chinner wrote:
> >
> > > If you are going to clean bufferheads (or pages), please clean entire
> > > mappings via ->writepages as it leads to far superior I/O patterns
> > > and a far higher aggregate rate of page cleaning.....
> >
> > That brings up another issue: Lets say I use writepages on a large file
> > (couple of gig). How much do you want to write back?
>
> We're out of memory. I'd suggest write backing as much as you can
> without blocking. e.g. treat it like pdflush and say 1024 pages, or
> like balance_dirty_pages() and write a 'write_chunk' back from the
> mapping (i.e. sync_writeback_pages()).

Why are we out of memory? How do you trigger such a special writeout?

> Any of these are better from an I/O perspective than single page
> writeback....

But then filesystem can do tricks like writing out the surrounding areas
as needed. The filesystem likely can estimate better how much writeout
makes sense.