mirror_zfs/include/sys
Brian Behlendorf 376dc35e22 Add spl_kmem_cache_reclaim module option
The correct behavior for all registered shrinkers is to return the
number of objects in their cache.  In theory this allows the Linux
VM to balance memory reclaim across all registered caches.

In commit b9b3715 this behavior was disabled in favor of returning
-1 which notifies the VM that no additional objects are available
for reclaim.  This was done as a workaround to resolve thrashing
in shrink_slabs() which could occur when memory was low and numerous
core where in reclaim.  Unfortunately, this has been observed to
increase the likelihood of OOM events when SPL slab consumers are
responsible for consuming the majority of memory.

Therefore, this patch makes this behavior tunable.  Setting the
spl_kmem_cache_reclaim module option to 0x1 will result in the
shrinker only being called once.  This is the default behavior.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Prakash Surya <surya1@llnl.gov>
Closes #358
2014-05-22 10:30:12 -07:00
..
fm Change spl-kmod-devel install path 2013-03-14 12:01:05 -07:00
fs Change spl-kmod-devel install path 2013-03-14 12:01:05 -07:00
sysevent Change spl-kmod-devel install path 2013-03-14 12:01:05 -07:00
acl_impl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
acl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
atomic.h Refresh links to web site 2013-03-04 19:09:34 -08:00
attr.h Refresh links to web site 2013-03-04 19:09:34 -08:00
bitmap.h Refresh links to web site 2013-03-04 19:09:34 -08:00
bootconf.h Refresh links to web site 2013-03-04 19:09:34 -08:00
bootprops.h Refresh links to web site 2013-03-04 19:09:34 -08:00
buf.h Refresh links to web site 2013-03-04 19:09:34 -08:00
byteorder.h Refresh links to web site 2013-03-04 19:09:34 -08:00
callb.h Refresh links to web site 2013-03-04 19:09:34 -08:00
callo.h Emulate illumos interface cv_timedwait_hires() 2013-11-04 09:49:24 -08:00
cmn_err.h Refresh links to web site 2013-03-04 19:09:34 -08:00
compress.h Refresh links to web site 2013-03-04 19:09:34 -08:00
condvar.h Emulate illumos interface cv_timedwait_hires() 2013-11-04 09:49:24 -08:00
conf.h Refresh links to web site 2013-03-04 19:09:34 -08:00
console.h Refresh links to web site 2013-03-04 19:09:34 -08:00
cpupart.h Refresh links to web site 2013-03-04 19:09:34 -08:00
cpuvar.h Refresh links to web site 2013-03-04 19:09:34 -08:00
crc32.h Refresh links to web site 2013-03-04 19:09:34 -08:00
cred.h Linux 3.8 compat: Use kuid_t/kgid_t when required 2013-08-09 10:09:29 -07:00
ctype.h Refresh links to web site 2013-03-04 19:09:34 -08:00
ddi.h Refresh links to web site 2013-03-04 19:09:34 -08:00
debug.h This patch add a CTASSERT macro for compile time assertion. 2014-04-14 09:28:53 -07:00
dirent.h Refresh links to web site 2013-03-04 19:09:34 -08:00
disp.h Add kpreempt() compatibility macro 2013-10-09 13:52:55 -07:00
dkio.h Refresh links to web site 2013-03-04 19:09:34 -08:00
dklabel.h Refresh links to web site 2013-03-04 19:09:34 -08:00
dnlc.h Refresh links to web site 2013-03-04 19:09:34 -08:00
dumphdr.h Refresh links to web site 2013-03-04 19:09:34 -08:00
efi_partition.h Refresh links to web site 2013-03-04 19:09:34 -08:00
errno.h Refresh links to web site 2013-03-04 19:09:34 -08:00
extdirent.h Refresh links to web site 2013-03-04 19:09:34 -08:00
fcntl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
file.h Refresh links to web site 2013-03-04 19:09:34 -08:00
idmap.h Refresh links to web site 2013-03-04 19:09:34 -08:00
int_limits.h Refresh links to web site 2013-03-04 19:09:34 -08:00
int_types.h Refresh links to web site 2013-03-04 19:09:34 -08:00
inttypes.h Refresh links to web site 2013-03-04 19:09:34 -08:00
isa_defs.h Add support for aarch64 (ARMv8) 2014-04-25 15:25:32 -07:00
kidmap.h Refresh links to web site 2013-03-04 19:09:34 -08:00
kmem.h Add spl_kmem_cache_reclaim module option 2014-05-22 10:30:12 -07:00
kobj.h Refresh links to web site 2013-03-04 19:09:34 -08:00
kstat.h 3537 add kstat_waitq_enter and friends 2013-10-25 13:41:52 -07:00
list.h Refresh links to web site 2013-03-04 19:09:34 -08:00
Makefile.am Emulate illumos interface cv_timedwait_hires() 2013-11-04 09:49:24 -08:00
mkdev.h Refresh links to web site 2013-03-04 19:09:34 -08:00
mntent.h Refresh links to web site 2013-03-04 19:09:34 -08:00
modctl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
mode.h Refresh links to web site 2013-03-04 19:09:34 -08:00
mount.h Refresh links to web site 2013-03-04 19:09:34 -08:00
mutex.h Refresh links to web site 2013-03-04 19:09:34 -08:00
note.h Refresh links to web site 2013-03-04 19:09:34 -08:00
open.h Refresh links to web site 2013-03-04 19:09:34 -08:00
param.h Refresh links to web site 2013-03-04 19:09:34 -08:00
pathname.h Refresh links to web site 2013-03-04 19:09:34 -08:00
policy.h Refresh links to web site 2013-03-04 19:09:34 -08:00
pool.h Refresh links to web site 2013-03-04 19:09:34 -08:00
priv_impl.h Refresh links to web site 2013-03-04 19:09:34 -08:00
proc.h Refresh links to web site 2013-03-04 19:09:34 -08:00
processor.h Refresh links to web site 2013-03-04 19:09:34 -08:00
pset.h Refresh links to web site 2013-03-04 19:09:34 -08:00
random.h Refresh links to web site 2013-03-04 19:09:34 -08:00
refstr.h Refresh links to web site 2013-03-04 19:09:34 -08:00
resource.h Refresh links to web site 2013-03-04 19:09:34 -08:00
rwlock.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sdt.h Define SET_ERROR() 2013-10-09 14:20:46 -07:00
sid.h Refresh links to web site 2013-03-04 19:09:34 -08:00
signal.h Refresh links to web site 2013-03-04 19:09:34 -08:00
stat.h Refresh links to web site 2013-03-04 19:09:34 -08:00
stropts.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sunddi.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sunldi.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sysdc.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sysevent.h Refresh links to web site 2013-03-04 19:09:34 -08:00
sysmacros.h Linux 3.15 compat: NICE_TO_PRIO and PRIO_TO_NICE 2014-05-07 13:38:03 -07:00
systeminfo.h Simplify hostid logic 2014-04-14 09:04:41 -07:00
systm.h Refresh links to web site 2013-03-04 19:09:34 -08:00
t_lock.h Refresh links to web site 2013-03-04 19:09:34 -08:00
taskq.h Refresh links to web site 2013-03-04 19:09:34 -08:00
thread.h De-inline spl_kthread_create(). 2014-04-09 19:17:12 -07:00
time.h Emulate illumos interface cv_timedwait_hires() 2013-11-04 09:49:24 -08:00
timer.h Add ddi_time_after and friends 2014-04-14 09:32:01 -07:00
tsd.h Refresh links to web site 2013-03-04 19:09:34 -08:00
types32.h Refresh links to web site 2013-03-04 19:09:34 -08:00
types.h Refresh links to web site 2013-03-04 19:09:34 -08:00
u8_textprep.h Refresh links to web site 2013-03-04 19:09:34 -08:00
uio.h Refresh links to web site 2013-03-04 19:09:34 -08:00
unistd.h Refresh links to web site 2013-03-04 19:09:34 -08:00
utsname.h Refresh links to web site 2013-03-04 19:09:34 -08:00
va_list.h Refresh links to web site 2013-03-04 19:09:34 -08:00
varargs.h Refresh links to web site 2013-03-04 19:09:34 -08:00
vfs_opreg.h Refresh links to web site 2013-03-04 19:09:34 -08:00
vfs.h Refresh links to web site 2013-03-04 19:09:34 -08:00
vmsystm.h Include linux/vmalloc.h for ARM and Sparc 2014-01-07 10:45:39 -08:00
vnode.h Refresh links to web site 2013-03-04 19:09:34 -08:00
zmod.h Refresh links to web site 2013-03-04 19:09:34 -08:00
zone.h Refresh links to web site 2013-03-04 19:09:34 -08:00