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

From: David Chinner
Date: Mon May 19 2008 - 20:25:52 EST


On Mon, May 19, 2008 at 09:44:11AM -0700, Christoph Lameter wrote:
> On Mon, 19 May 2008, David Chinner wrote:
>
> > Defragmentation is triggered as part of the usual memory reclaim
> > process. Which implies we've run out of free memory, correct?
>
> Yes but we have already reclaimed some memory.
>
> > > How do you trigger such a special writeout?
> >
> > filemap_fdatawrite_range() perhaps?
>
> Could you provide me such a patch? I would not know how much to writeout.
> If we had such a method then we could also use that for the swap case
> where we also write out single pages?

How hard is it? I don't have time right now to do this, but it's essentially:

mapping = page->mapping;
......
- mapping->aops->writepage();
+ filemap_fdatawrite_range(mapping, start, end);

Where [start,end] span page->index and are is large enough
to get a substantial sized I/O to disk (say at least SWAP_CLUSTER_MAX
pages, preferrably larger for 4k page size machines).

Cheers,

Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/