diff options
author | Brian Behlendorf <[email protected]> | 2014-11-03 13:50:39 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2014-11-05 10:08:21 -0800 |
commit | 917fef273295616c563bbb0a5f6986cfce543d2f (patch) | |
tree | 47455aa2dec6e9db300372154d96017214a2f871 | |
parent | 7f118e836e3533d85aa0f859eb463cf9e54dc3fc (diff) |
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 <[email protected]>
-rw-r--r-- | include/sys/kmem.h | 2 | ||||
-rw-r--r-- | module/splat/splat-kmem.c | 9 |
2 files changed, 10 insertions, 1 deletions
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; } |