summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2008-04-14 19:11:40 +0300
committerPekka Enberg <penberg@cs.helsinki.fi>2008-04-27 18:28:17 +0300
commit205ab99dd103e3dd5b0964dad8a16dfe2db69b2e (patch)
tree026a601ea25681cbf34f37360880f78a305a32f5 /include
parent834f3d119234b35a1985a2449831d99356637937 (diff)
downloadlinux-205ab99dd103e3dd5b0964dad8a16dfe2db69b2e.tar.gz
linux-205ab99dd103e3dd5b0964dad8a16dfe2db69b2e.tar.bz2
linux-205ab99dd103e3dd5b0964dad8a16dfe2db69b2e.zip
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')
-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 {
struct list_head partial;
#ifdef CONFIG_SLUB_DEBUG
atomic_long_t nr_slabs;
+ atomic_long_t total_objects;
struct list_head full;
#endif
};
@@ -79,6 +80,7 @@ struct kmem_cache {
struct kmem_cache_node local_node;
/* Allocation and freeing of slabs */
+ struct kmem_cache_order_objects max;
gfp_t allocflags; /* gfp flags to use on each alloc */
int refcount; /* Refcount for slab cache destroy */
void (*ctor)(struct kmem_cache *, void *);