diff options
author | Christoph Lameter <cl@linux-foundation.org> | 2008-08-19 09:51:22 -0400 |
---|---|---|
committer | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-08-20 14:50:21 -0400 |
commit | e2cb96b7ecba46888cf00252ffdb8ef1e92c4258 (patch) | |
tree | 98bb362ab0fc0eab37b206a3b8330354406bb357 /mm/slub.c | |
parent | 30a2f3c60a84092c8084dfe788b710f8d0768cd4 (diff) |
slub: Disable NUMA remote node defragmentation by default
Switch remote node defragmentation off by default. The current settings can
cause excessive node local allocations with hackbench:
SLAB:
% cat /proc/meminfo
MemTotal: 7701760 kB
MemFree: 5940096 kB
Slab: 123840 kB
SLUB:
% cat /proc/meminfo
MemTotal: 7701376 kB
MemFree: 4740928 kB
Slab: 1591680 kB
[Note: this feature is not related to slab defragmentation.]
You can find the original discussion here:
http://lkml.org/lkml/2008/8/4/308
Reported-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Tested-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Christoph Lameter <cl@linux-foundation.org>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'mm/slub.c')
-rw-r--r-- | mm/slub.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -2312,7 +2312,7 @@ static int kmem_cache_open(struct kmem_cache *s, gfp_t gfpflags, | |||
2312 | 2312 | ||
2313 | s->refcount = 1; | 2313 | s->refcount = 1; |
2314 | #ifdef CONFIG_NUMA | 2314 | #ifdef CONFIG_NUMA |
2315 | s->remote_node_defrag_ratio = 100; | 2315 | s->remote_node_defrag_ratio = 1000; |
2316 | #endif | 2316 | #endif |
2317 | if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA)) | 2317 | if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA)) |
2318 | goto error; | 2318 | goto error; |
@@ -4058,7 +4058,7 @@ static ssize_t remote_node_defrag_ratio_store(struct kmem_cache *s, | |||
4058 | if (err) | 4058 | if (err) |
4059 | return err; | 4059 | return err; |
4060 | 4060 | ||
4061 | if (ratio < 100) | 4061 | if (ratio <= 100) |
4062 | s->remote_node_defrag_ratio = ratio * 10; | 4062 | s->remote_node_defrag_ratio = ratio * 10; |
4063 | 4063 | ||
4064 | return length; | 4064 | return length; |