aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMel Gorman <mel@csn.ul.ie>2009-06-16 18:32:16 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-16 22:47:35 -0400
commitb6e68bc1baed9b6972a250aba66b8c5276cf6fb1 (patch)
tree193af67b8333417347b9324e4bf9963d7cf0a872
parent62bc62a873116805774ffd37d7f86aa4faa832b1 (diff)
page allocator: slab: use nr_online_nodes to check for a NUMA platform
SLAB currently avoids checking a bitmap repeatedly by checking once and storing a flag. When the addition of nr_online_nodes as a cheaper version of num_online_nodes(), this check can be replaced by nr_online_nodes. (Christoph did a patch that this is lifted almost verbatim from) Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Mel Gorman <mel@csn.ul.ie> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: Dave Hansen <dave@linux.vnet.ibm.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/slab.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/mm/slab.c b/mm/slab.c
index bb3254c95cd2..744ab9a665a2 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -898,7 +898,6 @@ static void __slab_error(const char *function, struct kmem_cache *cachep,
898 */ 898 */
899 899
900static int use_alien_caches __read_mostly = 1; 900static int use_alien_caches __read_mostly = 1;
901static int numa_platform __read_mostly = 1;
902static int __init noaliencache_setup(char *s) 901static int __init noaliencache_setup(char *s)
903{ 902{
904 use_alien_caches = 0; 903 use_alien_caches = 0;
@@ -1457,10 +1456,8 @@ void __init kmem_cache_init(void)
1457 int order; 1456 int order;
1458 int node; 1457 int node;
1459 1458
1460 if (num_possible_nodes() == 1) { 1459 if (num_possible_nodes() == 1)
1461 use_alien_caches = 0; 1460 use_alien_caches = 0;
1462 numa_platform = 0;
1463 }
1464 1461
1465 for (i = 0; i < NUM_INIT_LISTS; i++) { 1462 for (i = 0; i < NUM_INIT_LISTS; i++) {
1466 kmem_list3_init(&initkmem_list3[i]); 1463 kmem_list3_init(&initkmem_list3[i]);
@@ -3590,7 +3587,7 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp)
3590 * variable to skip the call, which is mostly likely to be present in 3587 * variable to skip the call, which is mostly likely to be present in
3591 * the cache. 3588 * the cache.
3592 */ 3589 */
3593 if (numa_platform && cache_free_alien(cachep, objp)) 3590 if (nr_online_nodes > 1 && cache_free_alien(cachep, objp))
3594 return; 3591 return;
3595 3592
3596 if (likely(ac->avail < ac->limit)) { 3593 if (likely(ac->avail < ac->limit)) {