opnsense-src/sys/cddl/compat/opensolaris/sys
Steven Hartland 4d19f4ad1f Refactor ZFS ARC reclaim logic to be more VM cooperative
Prior to this change we triggered ARC reclaim when kmem usage passed 3/4
of the total available, as indicated by vmem_size(kmem_arena, VMEM_ALLOC).

This could lead large amounts of unused RAM e.g. on a 192GB machine with
ARC the only major RAM consumer, 40GB of RAM would remain unused.

The old method has also been seen to result in extreme RAM usage under
certain loads, causing poor performance and stalls.

We now trigger ARC reclaim when the number of free pages drops below the
value defined by the new sysctl vfs.zfs.arc_free_target, which defaults
to the value of vm.v_free_target.

Credit to Karl Denninger for the original patch on which this update was
based.

PR:		191510 and 187594
Tested by:	dteske
MFC after:	1 week
Relnotes:	yes
Sponsored by:	Multiplay
2014-08-28 19:50:08 +00:00
..
acl.h Change license to more bori^Wadul^Wcanonical. 2009-05-26 11:42:06 +00:00
assfail.h Merge recent zfs vendor changes, sync code and adjust userland DEBUG. 2012-09-12 18:05:43 +00:00
atomic.h Provide compatibility shim for atomic_dec_64_nv. 2014-08-21 08:25:46 +00:00
bitmap.h Add FreeBSD IDs to files that originate in FreeBSD. 2008-04-22 07:43:00 +00:00
byteorder.h MFV r245512: 2013-02-09 06:39:28 +00:00
cmn_err.h Compatibility stuff for DTrace. 2008-05-22 08:33:24 +00:00
cpupart.h Add FreeBSD IDs to files that originate in FreeBSD. 2008-04-22 07:43:00 +00:00
cpuvar.h Ensure that the padding calcualtion doesn't return a negative value. 2008-08-29 15:55:49 +00:00
cpuvar_defs.h Additional compatibility headers. 2008-05-22 08:35:03 +00:00
cred.h WiP merge of libzfs_core (MFV r238590, r238592) 2013-03-05 08:09:53 +00:00
cyclic.h Compatibility stuff for DTrace. 2008-05-22 08:33:24 +00:00
cyclic_impl.h opensolaris cyclic: fix deadlock and make a little bit closer to upstream 2010-12-07 12:25:26 +00:00
debug.h Merge recent zfs vendor changes, sync code and adjust userland DEBUG. 2012-09-12 18:05:43 +00:00
debug_compat.h opensolaris code: translate INVARIANTS to DEBUG and ZFS_DEBUG 2013-08-06 15:51:56 +00:00
dirent.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
disp.h MFV r255255: 4045 zfs write throttle & i/o scheduler performance work 2013-11-26 09:57:14 +00:00
dkio.h Reintroduce priority for the TRIM ZIOs instead of using the "NOW" priority 2014-04-30 17:46:29 +00:00
dnlc.h I added vfs_lowvnodes event, but it was only used for a short while and now 2010-05-11 22:46:36 +00:00
elf.h Add more OpenSolaris compatibility headers. 2007-11-28 21:50:40 +00:00
feature_tests.h A 'special' compatibility header to plug OpenSolaris code. 2008-05-22 09:08:41 +00:00
file.h Update kernel inclusions of capability.h to use capsicum.h instead; some 2014-03-16 10:55:57 +00:00
freebsd_rwlock.h Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
kcondvar.h MFV r247844 (illumos-gate 13975:ef6409bc370f) 2013-09-10 01:46:47 +00:00
kidmap.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
kmem.h Refactor ZFS ARC reclaim logic to be more VM cooperative 2014-08-28 19:50:08 +00:00
kobj.h Extend kobj compatibility KPI to support operating on files before and 2007-04-08 23:57:08 +00:00
kstat.h Renamed zfs trim stats removing duplicate zio_trim identifier from the name 2012-12-12 16:14:14 +00:00
lock.h LO_ENROLLPEND is no more existing so just axe it (it was left out by the 2008-05-16 02:09:13 +00:00
misc.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
mman.h Add more OpenSolaris compatibility headers. 2007-11-28 21:50:40 +00:00
mntent.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
mnttab.h
modctl.h Add more OpenSolaris compatibility headers. 2007-11-28 21:50:40 +00:00
mount.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
mutex.h opensolaris code: translate INVARIANTS to DEBUG and ZFS_DEBUG 2013-08-06 15:51:56 +00:00
objfs.h Add FreeBSD IDs to files that originate in FreeBSD. 2008-04-22 07:43:00 +00:00
param.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
pathname.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
pcpu.h Compatibility stuff for DTrace. 2008-05-22 08:33:24 +00:00
policy.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
proc.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
random.h
refstr.h Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes. 2008-11-17 20:49:29 +00:00
rwlock.h opensolaris code: translate INVARIANTS to DEBUG and ZFS_DEBUG 2013-08-06 15:51:56 +00:00
sdt.h sdt: add support for solaris/illumos style DTRACE_PROBE macros 2013-11-26 08:49:53 +00:00
sema.h Additional compatibility headers. 2008-05-22 08:35:03 +00:00
sid.h Make r230454 more readable and vendor-like. 2012-09-06 13:43:48 +00:00
sig.h Partially revert r195702. Deferring stops is now implemented via a set of 2013-03-18 17:23:58 +00:00
stat.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
string.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
sunddi.h Partially fix ZFS compat code for sparc64. 2011-04-08 11:08:26 +00:00
systeminfo.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
systm.h Convert the last use of xcopyout() to ddi_copyout() and remove the now 2011-05-03 20:13:27 +00:00
time.h Revert r269404 and use cpu_ticks() for dbuf allocation. 2014-08-03 09:47:51 +00:00
types.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
uio.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
varargs.h
vfs.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
vm.h zfs: add zfs_freebsd_putpages 2013-11-29 15:39:39 +00:00
vnode.h Merge from vmc-playground: 2013-03-09 02:05:29 +00:00
zone.h Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00