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 | |
| 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>
| -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; |
