]> git.proxmox.com Git - mirror_spl.git/commitdiff
Set spl_kmem_cache_slab_limit=16384 to default
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 7 Aug 2014 23:23:04 +0000 (16:23 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 8 Aug 2014 15:51:45 +0000 (08:51 -0700)
For small objects the Linux slab allocator should be used to make the most
efficient use of the memory.  However, large objects are not supported by
the Linux slab and therefore the SPL implementation is preferred.  A cutoff
of 16K was determined to be optimal for architectures using 4K pages.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: DHE <git@dehacked.net>
Issue #356
Closes #379

module/spl/spl-kmem.c

index 0d1da437865e1aa47392c2e91d6709b9ff0c82fb..0a9d77534df2785463aa27c165ff4a08cfb4d2c2 100644 (file)
@@ -81,7 +81,17 @@ unsigned int spl_kmem_cache_max_size = 32;
 module_param(spl_kmem_cache_max_size, uint, 0644);
 MODULE_PARM_DESC(spl_kmem_cache_max_size, "Maximum size of slab in MB");
 
+/*
+ * For small objects the Linux slab allocator should be used to make the most
+ * efficient use of the memory.  However, large objects are not supported by
+ * the Linux slab and therefore the SPL implementation is preferred.  A cutoff
+ * of 16K was determined to be optimal for architectures using 4K pages.
+ */
+#if PAGE_SIZE == 4096
+unsigned int spl_kmem_cache_slab_limit = 16384;
+#else
 unsigned int spl_kmem_cache_slab_limit = 0;
+#endif
 module_param(spl_kmem_cache_slab_limit, uint, 0644);
 MODULE_PARM_DESC(spl_kmem_cache_slab_limit,
     "Objects less than N bytes use the Linux slab");