Commit b6e68bc1 authored by Mel Gorman's avatar Mel Gorman Committed by Linus Torvalds

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: default avatarChristoph Lameter <cl@linux.com>
Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Reviewed-by: default avatarPekka 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 62bc62a8
...@@ -898,7 +898,6 @@ static void __slab_error(const char *function, struct kmem_cache *cachep, ...@@ -898,7 +898,6 @@ static void __slab_error(const char *function, struct kmem_cache *cachep,
*/ */
static int use_alien_caches __read_mostly = 1; static int use_alien_caches __read_mostly = 1;
static int numa_platform __read_mostly = 1;
static int __init noaliencache_setup(char *s) static int __init noaliencache_setup(char *s)
{ {
use_alien_caches = 0; use_alien_caches = 0;
...@@ -1457,10 +1456,8 @@ void __init kmem_cache_init(void) ...@@ -1457,10 +1456,8 @@ void __init kmem_cache_init(void)
int order; int order;
int node; int node;
if (num_possible_nodes() == 1) { if (num_possible_nodes() == 1)
use_alien_caches = 0; use_alien_caches = 0;
numa_platform = 0;
}
for (i = 0; i < NUM_INIT_LISTS; i++) { for (i = 0; i < NUM_INIT_LISTS; i++) {
kmem_list3_init(&initkmem_list3[i]); kmem_list3_init(&initkmem_list3[i]);
...@@ -3590,7 +3587,7 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp) ...@@ -3590,7 +3587,7 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp)
* variable to skip the call, which is mostly likely to be present in * variable to skip the call, which is mostly likely to be present in
* the cache. * the cache.
*/ */
if (numa_platform && cache_free_alien(cachep, objp)) if (nr_online_nodes > 1 && cache_free_alien(cachep, objp))
return; return;
if (likely(ac->avail < ac->limit)) { if (likely(ac->avail < ac->limit)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment