From bc5364b907860b245ec0826743abe96f69e7eb2d Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 1 Jun 2011 12:25:57 -0500 Subject: [PATCH] --- yaml --- r: 261655 b: refs/heads/master c: e36a2652d7d1ad97f7636a39bdd8654d296cc36b h: refs/heads/master i: 261653: bd5a7a27be8463bd80d22de99304a9e2565ac2d5 261651: 73de75bbda84b9d467dbbcde26702e78227ba19a 261647: 24cd2e4592c904ebbb80ca3d9177bbe6c236f419 v: v3 --- [refs] | 2 +- trunk/include/linux/slub_def.h | 1 + trunk/mm/slub.c | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 49724d45ffba..406abec281e9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fc59c05306fe1dcfa3fb8ba34ed45407fba4689c +refs/heads/master: e36a2652d7d1ad97f7636a39bdd8654d296cc36b diff --git a/trunk/include/linux/slub_def.h b/trunk/include/linux/slub_def.h index b42715294147..5b228b785377 100644 --- a/trunk/include/linux/slub_def.h +++ b/trunk/include/linux/slub_def.h @@ -24,6 +24,7 @@ enum stat_item { ALLOC_FROM_PARTIAL, /* Cpu slab acquired from partial list */ ALLOC_SLAB, /* Cpu slab acquired from page allocator */ ALLOC_REFILL, /* Refill cpu slab from slab freelist */ + ALLOC_NODE_MISMATCH, /* Switching cpu slab */ FREE_SLAB, /* Slab freed to the page allocator */ CPUSLAB_FLUSH, /* Abandoning of the cpu slab */ DEACTIVATE_FULL, /* Cpu slab was full when deactivated */ diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index 41a15c1d8068..e00b7732f556 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -1966,6 +1966,7 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, goto new_slab; if (unlikely(!node_match(c, node))) { + stat(s, ALLOC_NODE_MISMATCH); deactivate_slab(s, c); goto new_slab; } @@ -4671,6 +4672,7 @@ STAT_ATTR(FREE_REMOVE_PARTIAL, free_remove_partial); STAT_ATTR(ALLOC_FROM_PARTIAL, alloc_from_partial); STAT_ATTR(ALLOC_SLAB, alloc_slab); STAT_ATTR(ALLOC_REFILL, alloc_refill); +STAT_ATTR(ALLOC_NODE_MISMATCH, alloc_node_mismatch); STAT_ATTR(FREE_SLAB, free_slab); STAT_ATTR(CPUSLAB_FLUSH, cpuslab_flush); STAT_ATTR(DEACTIVATE_FULL, deactivate_full); @@ -4730,6 +4732,7 @@ static struct attribute *slab_attrs[] = { &alloc_from_partial_attr.attr, &alloc_slab_attr.attr, &alloc_refill_attr.attr, + &alloc_node_mismatch_attr.attr, &free_slab_attr.attr, &cpuslab_flush_attr.attr, &deactivate_full_attr.attr,