aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slub.c
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux.com>2011-06-01 13:25:57 -0400
committerPekka Enberg <penberg@kernel.org>2011-07-02 06:26:56 -0400
commite36a2652d7d1ad97f7636a39bdd8654d296cc36b (patch)
treefd01f6bf66b233e8e66a119ded39691914db7d7e /mm/slub.c
parentfc59c05306fe1dcfa3fb8ba34ed45407fba4689c (diff)
slub: Add statistics for the case that the current slab does not match the node
Slub reloads the per cpu slab if the page does not satisfy the NUMA condition. Track those reloads since doing so has a performance impact. Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'mm/slub.c')
-rw-r--r--mm/slub.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/slub.c b/mm/slub.c
index 41a15c1d8068..e00b7732f556 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1966,6 +1966,7 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
1966 goto new_slab; 1966 goto new_slab;
1967 1967
1968 if (unlikely(!node_match(c, node))) { 1968 if (unlikely(!node_match(c, node))) {
1969 stat(s, ALLOC_NODE_MISMATCH);
1969 deactivate_slab(s, c); 1970 deactivate_slab(s, c);
1970 goto new_slab; 1971 goto new_slab;
1971 } 1972 }
@@ -4671,6 +4672,7 @@ STAT_ATTR(FREE_REMOVE_PARTIAL, free_remove_partial);
4671STAT_ATTR(ALLOC_FROM_PARTIAL, alloc_from_partial); 4672STAT_ATTR(ALLOC_FROM_PARTIAL, alloc_from_partial);
4672STAT_ATTR(ALLOC_SLAB, alloc_slab); 4673STAT_ATTR(ALLOC_SLAB, alloc_slab);
4673STAT_ATTR(ALLOC_REFILL, alloc_refill); 4674STAT_ATTR(ALLOC_REFILL, alloc_refill);
4675STAT_ATTR(ALLOC_NODE_MISMATCH, alloc_node_mismatch);
4674STAT_ATTR(FREE_SLAB, free_slab); 4676STAT_ATTR(FREE_SLAB, free_slab);
4675STAT_ATTR(CPUSLAB_FLUSH, cpuslab_flush); 4677STAT_ATTR(CPUSLAB_FLUSH, cpuslab_flush);
4676STAT_ATTR(DEACTIVATE_FULL, deactivate_full); 4678STAT_ATTR(DEACTIVATE_FULL, deactivate_full);
@@ -4730,6 +4732,7 @@ static struct attribute *slab_attrs[] = {
4730 &alloc_from_partial_attr.attr, 4732 &alloc_from_partial_attr.attr,
4731 &alloc_slab_attr.attr, 4733 &alloc_slab_attr.attr,
4732 &alloc_refill_attr.attr, 4734 &alloc_refill_attr.attr,
4735 &alloc_node_mismatch_attr.attr,
4733 &free_slab_attr.attr, 4736 &free_slab_attr.attr,
4734 &cpuslab_flush_attr.attr, 4737 &cpuslab_flush_attr.attr,
4735 &deactivate_full_attr.attr, 4738 &deactivate_full_attr.attr,