From 917fef273295616c563bbb0a5f6986cfce543d2f Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Mon, 3 Nov 2014 13:50:39 -0800 Subject: [PATCH] Lower minimum objects/slab threshold As long as we can fit a minimum of one object/slab there's no reason to prevent the creation of the cache. This effectively pushes the maximum object size up to 32MB. The splat cache tests were extended accordingly to verify this functionality. Signed-off-by: Brian Behlendorf --- include/sys/kmem.h | 2 +- module/splat/splat-kmem.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/sys/kmem.h b/include/sys/kmem.h index adbaea931..5875dfff6 100644 --- a/include/sys/kmem.h +++ b/include/sys/kmem.h @@ -395,7 +395,7 @@ extern struct rw_semaphore spl_kmem_cache_sem; #define SPL_KMEM_CACHE_DELAY 15 /* Minimum slab release age */ #define SPL_KMEM_CACHE_REAP 0 /* Default reap everything */ #define SPL_KMEM_CACHE_OBJ_PER_SLAB 16 /* Target objects per slab */ -#define SPL_KMEM_CACHE_OBJ_PER_SLAB_MIN 8 /* Minimum objects per slab */ +#define SPL_KMEM_CACHE_OBJ_PER_SLAB_MIN 1 /* Minimum objects per slab */ #define SPL_KMEM_CACHE_ALIGN 8 /* Default object alignment */ #define POINTER_IS_VALID(p) 0 /* Unimplemented */ diff --git a/module/splat/splat-kmem.c b/module/splat/splat-kmem.c index 76643db18..db787ae92 100644 --- a/module/splat/splat-kmem.c +++ b/module/splat/splat-kmem.c @@ -799,6 +799,10 @@ splat_kmem_test6(struct file *file, void *arg) if (rc) return rc; + rc = splat_kmem_cache_test(file, arg, name, 16*1024*1024, 0, KMC_VMEM); + if (rc) + return rc; + /* Off slab (default + kmem + vmem) */ rc = splat_kmem_cache_test(file, arg, name, 256*1024, 0, KMC_OFFSLAB); if (rc) @@ -811,6 +815,11 @@ splat_kmem_test6(struct file *file, void *arg) rc = splat_kmem_cache_test(file, arg, name, 1024*1024, 0, KMC_VMEM | KMC_OFFSLAB); + if (rc) + return rc; + + rc = splat_kmem_cache_test(file, arg, name, 16*1024*1024, 0, + KMC_VMEM | KMC_OFFSLAB); return rc; }