aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2008-04-14 12:11:40 -0400
committerPekka Enberg <penberg@cs.helsinki.fi>2008-04-27 11:28:17 -0400
commit205ab99dd103e3dd5b0964dad8a16dfe2db69b2e (patch)
tree026a601ea25681cbf34f37360880f78a305a32f5 /include/linux
parent834f3d119234b35a1985a2449831d99356637937 (diff)
slub: Update statistics handling for variable order slabs
Change the statistics to consider that slabs of the same slabcache can have different number of objects in them since they may be of different order. Provide a new sysfs field total_objects which shows the total objects that the allocated slabs of a slabcache could hold. Add a max field that holds the largest slab order that was ever used for a slab cache. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/slub_def.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
index 4131e5fbd18b..4236b5dee812 100644
--- a/include/linux/slub_def.h
+++ b/include/linux/slub_def.h
@@ -48,6 +48,7 @@ struct kmem_cache_node {
48 struct list_head partial; 48 struct list_head partial;
49#ifdef CONFIG_SLUB_DEBUG 49#ifdef CONFIG_SLUB_DEBUG
50 atomic_long_t nr_slabs; 50 atomic_long_t nr_slabs;
51 atomic_long_t total_objects;
51 struct list_head full; 52 struct list_head full;
52#endif 53#endif
53}; 54};
@@ -79,6 +80,7 @@ struct kmem_cache {
79 struct kmem_cache_node local_node; 80 struct kmem_cache_node local_node;
80 81
81 /* Allocation and freeing of slabs */ 82 /* Allocation and freeing of slabs */
83 struct kmem_cache_order_objects max;
82 gfp_t allocflags; /* gfp flags to use on each alloc */ 84 gfp_t allocflags; /* gfp flags to use on each alloc */
83 int refcount; /* Refcount for slab cache destroy */ 85 int refcount; /* Refcount for slab cache destroy */
84 void (*ctor)(struct kmem_cache *, void *); 86 void (*ctor)(struct kmem_cache *, void *);