From: Christoph Lameter <clameter@sgi.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, Mel Gorman <mel@skynet.ie>,
andi@firstfloor.org, Nick Piggin <npiggin@suse.de>,
Rik van Riel <riel@redhat.com>,
Pekka Enberg <penberg@cs.helsinki.fi>
Subject: Re: [patch 18/18] dentries: dentry defragmentation
Date: Tue, 8 Apr 2008 14:41:26 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.64.0804081433210.31620@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <20080408142232.8ac243bc.akpm@linux-foundation.org>
On Tue, 8 Apr 2008, Andrew Morton wrote:
> We know from hard experience that scanning code tends to have failure
> scenarios where it expends large amounts of CPU time not achieving much.
That is prevented by marking slabs where we were unable to reclaim all
objects in a special way. Those are exempt from future scans. Another
reclaim attempt is made on these slabs only after all objects have been
allocated from a slab.
So the worst case would be:
1. Removal of one object from a slab
2. Reclaim scan fails. Page marked unkickable
3. We allocate the last object. Page marked kickable.
4. goto 1
Note that it is difficult to get below the slab defrag ratio (20%) to
trigger this. I guess a slab with 5 objects could get there if 4 objects
have been freed.
If one increases the ratio to 60% then one would be able to do that with a
slab cache that has only 2 objects. Boot with slab_max_order=0 to force
mininum objects per slab.
> What workloads are most likely to trigger that sort of behaviour with these
> changes? How do we establish such failure scenarios and test them?
>
> It could be that the non-kickable flag saves us from all such cases, dunno.
The kickable flag exempts slabs from attempt to reclaim but it does not
take the slab off the partial. If we have a large amount of partial slabs
then scanning the partials may become expensive. That is why I added the
timeout to reduce the scans in V11.
If we want to get rid of the timeout then we should key the reclaim
frequency off the number of objects freed since last reclaim and also
consider the size of the partial slab list. The larger the partial slab
list the rarer the scan. slabinfo will show the size of the partial lists.
Also slabinfo provides counters to verify the operation of slab reclaim.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-04-08 21:41 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080404230158.365359425@sgi.com>
[not found] ` <20080404230229.401345769@sgi.com>
2008-04-08 6:13 ` [patch 16/18] FS: Socket inode defragmentation Andrew Morton
[not found] ` <20080404230225.862960359@sgi.com>
[not found] ` <20080407231052.eb37a8fd.akpm@linux-foundation.org>
2008-04-08 18:55 ` [patch 01/18] SLUB: Add defrag_ratio field and sysfs support Pekka J Enberg
[not found] ` <20080404230226.340749825@sgi.com>
[not found] ` <20080407231059.e8c173fa.akpm@linux-foundation.org>
2008-04-08 19:07 ` [patch 03/18] SLUB: Add get() and kick() methods Pekka J Enberg
[not found] ` <20080404230226.577197795@sgi.com>
[not found] ` <20080407231113.855e2ba3.akpm@linux-foundation.org>
2008-04-08 19:18 ` [patch 04/18] SLUB: Sort slab cache list and establish maximum objects for defrag slabs Pekka Enberg
2008-04-08 21:01 ` Christoph Lameter
2008-04-08 21:07 ` Andi Kleen
[not found] ` <84144f020804072317g5b2b9f42yb300cad9a4258a15@mail.gmail.com>
[not found] ` <20080407233001.3e1e5147.akpm@linux-foundation.org>
2008-04-10 16:17 ` Pekka Enberg
[not found] ` <20080404230226.847485429@sgi.com>
[not found] ` <20080407231129.3c044ba1.akpm@linux-foundation.org>
2008-04-08 21:02 ` [patch 05/18] SLUB: Slab defrag core Christoph Lameter
2008-04-08 21:11 ` Andrew Morton
2008-04-08 21:17 ` Christoph Lameter
2008-04-08 21:25 ` Andrew Morton
2008-04-08 21:47 ` Christoph Lameter
2008-04-10 18:28 ` Christoph Lameter
2008-04-10 19:00 ` Andrew Morton
2008-04-10 20:33 ` Christoph Lameter
2008-04-10 20:49 ` Pekka Enberg
[not found] ` <20080404230227.768964864@sgi.com>
[not found] ` <20080407231137.6e3a38cd.akpm@linux-foundation.org>
2008-04-08 21:05 ` [patch 09/18] SLUB: Trigger defragmentation from memory reclaim Christoph Lameter
[not found] ` <20080404230229.678047976@sgi.com>
[not found] ` <20080407231402.63284bb5.akpm@linux-foundation.org>
2008-04-08 21:09 ` [patch 17/18] dentries: Add constructor Christoph Lameter
[not found] ` <20080404230229.922470579@sgi.com>
[not found] ` <20080407231434.88352977.akpm@linux-foundation.org>
2008-04-08 21:14 ` [patch 18/18] dentries: dentry defragmentation Christoph Lameter
2008-04-08 21:22 ` Andrew Morton
2008-04-08 21:41 ` Christoph Lameter [this message]
[not found] ` <20080404230229.169327879@sgi.com>
[not found] ` <20080407231346.8a17d27d.akpm@linux-foundation.org>
2008-04-13 13:39 ` RIP __kmem_cache_shrink (was Re: [patch 15/18] FS: Proc filesystem support for slab defrag) Alexey Dobriyan
2008-04-14 19:41 ` Christoph Lameter
2008-04-14 20:12 ` Alexey Dobriyan
2008-04-14 20:36 ` Pekka Enberg
[not found] ` <20080404230228.523868817@sgi.com>
[not found] ` <20080407231341.ac45cd9d.akpm@linux-foundation.org>
2008-05-08 3:49 ` [patch 12/18] FS: ExtX filesystem defrag Christoph Lameter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.64.0804081433210.31620@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=linux-mm@kvack.org \
--cc=mel@skynet.ie \
--cc=npiggin@suse.de \
--cc=penberg@cs.helsinki.fi \
--cc=riel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).