]> git.proxmox.com Git - mirror_spl-debian.git/commit
Add spl_kmem_cache_expire module option
authorBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 18 Jan 2013 23:44:27 +0000 (15:44 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 28 Jan 2013 17:34:12 +0000 (09:34 -0800)
commit0936c3449fc81caeed49d23e1705a9decd964700
tree633fa1c3409297ab093fc72485b6d9ce70381dd3
parent84dd1f4f158c2da72f50d5ee5cd798197303ab23
Add spl_kmem_cache_expire module option

Cache aging was implemented because it was part of the default Solaris
kmem_cache behavior.  The idea is that per-cpu objects which haven't been
accessed in several seconds should be returned to the cache.  On the other
hand Linux slabs never move objects back to the slabs unless there is
memory pressure on the system.

This behavior is now configurable through the 'spl_kmem_cache_expire'
module option.  The value is a bit mask with the following meaning.

  0x1 - Solaris style cache aging eviction is enabled.
  0x2 - Linux style low memory eviction is enabled.

Both methods may be safely enabled simultaneously, but by default
both are disabled.  It has never been clear if the kmem cache aging
(which has been around from day one) actually does any good.  It has
however been the source of numerous bugs so I wouldn't mind retiring
it entirely.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes zfsonlinux/zfs#1227
Closes #210
include/sys/kmem.h
module/spl/spl-kmem.c
module/splat/splat-kmem.c