[Top] [All Lists]

Re: Defrag in shrinkers

To: Ed Tomlinson <edt@xxxxxx>
Subject: Re: Defrag in shrinkers
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Mon, 17 May 2010 10:24:44 +1000
Cc: Andi Kleen <andi@xxxxxxxxxxxxxx>, Christoph Lameter <cl@xxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, linux-mm@xxxxxxxxx, Pekka Enberg <penberg@xxxxxxxxxxxxxx>, npiggin@xxxxxxx
In-reply-to: <201005151308.18090.edt@xxxxxx>
References: <1273821863-29524-1-git-send-email-david@xxxxxxxxxxxxx> <alpine.DEB.2.00.1005141244380.9466@xxxxxxxxxxx> <87y6fmmdak.fsf@xxxxxxxxxxxxxxxxx> <201005151308.18090.edt@xxxxxx>
User-agent: Mutt/1.5.20 (2009-06-14)
On Sat, May 15, 2010 at 01:08:17PM -0400, Ed Tomlinson wrote:
> On Friday 14 May 2010 16:36:03 Andi Kleen wrote:
> > Christoph Lameter <cl@xxxxxxxxx> writes:
> > 
> > > Would it also be possible to add some defragmentation logic when you
> > > revise the shrinkers? Here is a prototype patch that would allow you to
> > > determine the other objects sitting in the same page as a given object.
> > >
> > > With that I hope that you have enough information to determine if its
> > > worth to evict the other objects as well to reclaim the slab page.
> > 
> > I like the idea, it would be useful for the hwpoison code too,
> > when it tries to clean a page.
> If this is done generally we probably want to retune the 'pressure' put on 
> the slab.  The
> whole reason for the callbacks was to keep the 'pressure on the slab 
> proportional to the
> memory pressure (scan rate).  

I don't see that defrag based reclaim changes the concept of
pressure at all. As long as reclaim follows the nr_to_scan
guideline, then it doesn't matter if we do reclaim from the LRU or
reclaim from a list provided by the slab cache....

FWIW, one thing that would be necessary, I think, is to avoid defrag
until a certain level of fragmentation has occurred - we should do
LRU-based reclaim as much as possible, and only trigger defrag-style
reclaim once we hit a trigger (e.g. once the slab is 25% partial


Dave Chinner

<Prev in Thread] Current Thread [Next in Thread>