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>
This commit is contained in:
parent
62bc62a873
commit
b6e68bc1ba
|
@ -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)
|
||||||
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)
|
||||||
* 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)) {
|
||||||
|
|
Loading…
Reference in New Issue