freebsd-dev/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
..
amd64 Implement the 0x2B SUB instruction, and the OR variant of 0x81. 2014-08-27 00:53:56 +00:00
arm Rewrite of ti_i2c based on gonzo's patch, fix the following bugs/problems: 2014-08-20 17:02:37 +00:00
boot Since the size of GPT entry may differ from the sizeof(struct gpt_ent), 2014-08-25 07:15:14 +00:00
bsm IFp4 @1192291: 2014-04-07 20:44:00 +00:00
cam We should never enter the PROBE_SETAN phase if we're not ATAPI, since 2014-08-22 13:15:59 +00:00
cddl Refactor ZFS ARC reclaim logic to be more VM cooperative 2014-08-28 19:50:08 +00:00
compat Return real parent pid in kinfo (used by e.g. ps) 2014-08-28 08:41:11 +00:00
conf Add XL710 device entries to NOTES, and directories to the module 2014-08-28 17:40:19 +00:00
contrib Add iwn-100 firmware. 2014-08-28 00:05:02 +00:00
crypto Put the aesni_cipher_setup() and aesni_cipher_process() functions into 2014-06-24 06:55:49 +00:00
ddb ins is only set and unused, but only when we're not doing software 2014-08-14 16:01:51 +00:00
dev Fix build breakage caused by ixl driver 2014-08-28 18:59:39 +00:00
fs Fix bug that, assuming a/ is a root of NFS filesystem mounted on autofs, 2014-08-24 17:03:52 +00:00
gdb Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
geom Deal explicitly with possible failures of make_dev_alias_p() in GEOM. 2014-08-18 19:27:47 +00:00
gnu New DTS files to suppport the SAM9260EK eval board. Derived, in part, 2014-08-19 03:51:05 +00:00
i386 Fix build of si(4) and enable it in LINT on amd64 and i386. 2014-08-20 16:07:17 +00:00
isa Remove vestiges of knowing the ISA bus, which we gave up on around 20 2014-03-19 21:03:04 +00:00
kern Return real parent pid in kinfo (used by e.g. ps) 2014-08-28 08:41:11 +00:00
kgssapi
libkern Bring in the new automounter, similar to what's provided in most other 2014-08-17 09:44:42 +00:00
mips Change pmap_enter(9) interface to take flags parameter and superpage 2014-08-08 17:12:03 +00:00
modules Add XL710 device entries to NOTES, and directories to the module 2014-08-28 17:40:19 +00:00
net * Add new net/sff8436.h containing constants used to access 2014-08-21 17:54:42 +00:00
net80211 After much toying around with this AMRR initial rate stuff, 2014-08-20 09:10:03 +00:00
netgraph Remove any stale mbuf tags from packets being injected into a netgraph 2014-07-01 07:54:12 +00:00
netinet Announce SCTP support in the kern.features sysctl variables. 2014-08-26 21:15:34 +00:00
netinet6 Add some missing checks for unsupported interfaces (e.g. pflog(4)) when 2014-08-22 19:21:08 +00:00
netipsec Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
netnatm
netpfil Whitespace/style changes merged from projects/ipfw. 2014-08-23 17:57:06 +00:00
netsmb Remove redundant unlock. 2014-04-17 12:22:08 +00:00
nfs Fix/improve fhe_stats sysctl output. 2014-06-14 12:26:12 +00:00
nfsclient
nfsserver Change NFS readdir() to only ignore cookies preceding the given offset for 2014-07-01 20:00:35 +00:00
nlm Correct a typo in nlm_find_host_by_addr(): the intention of the 2014-03-11 00:25:55 +00:00
ofed - Update the OFED Linux Emulation layer as a preparation for a 2014-08-27 13:21:53 +00:00
opencrypto allow the kern.cryptodevallowsoft sysctl to enable symetric/hashes too... 2014-03-11 01:45:46 +00:00
pc98 Compile fixes: 2014-06-28 17:36:18 +00:00
pci Fix various NIC drivers to properly cleanup static DMA resources. 2014-06-11 14:53:58 +00:00
powerpc vt(4): Add vd_bitblt_bmp_t callback 2014-08-23 20:35:33 +00:00
rpc Merge the NFSv4.1 server code in projects/nfsv4.1-server over 2014-07-01 20:47:16 +00:00
security Replace dev_clone with cdevpriv(9) KPI in audit_pipe code. 2014-08-20 16:04:30 +00:00
sparc64 For CPUs which do hardware cache line unaliasing, use direct map to 2014-08-23 18:11:54 +00:00
sys Return real parent pid in kinfo (used by e.g. ps) 2014-08-28 08:41:11 +00:00
teken Fix typo. 2014-02-06 13:28:06 +00:00
tools Call cpp with -P to avoid printing line markings. 2014-06-10 06:24:01 +00:00
ufs Rather than using an hardcoded reclaim age, rely on an LRU-like approach 2014-08-25 17:06:18 +00:00
vm Refactor ZFS ARC reclaim logic to be more VM cooperative 2014-08-28 19:50:08 +00:00
x86 atpic: make sure atpic_init is called after IO APIC initialization 2014-08-07 17:00:50 +00:00
xdr
xen xen: implement event channel PIRQ support 2014-08-04 08:42:29 +00:00
Makefile Remove ia64. 2014-07-07 00:27:09 +00:00