freebsd-dev/sys
Mark Johnston eeacb3b02f Merge the vm_page hold and wire mechanisms.
The hold_count and wire_count fields of struct vm_page are separate
reference counters with similar semantics.  The remaining essential
differences are that holds are not counted as a reference with respect
to LRU, and holds have an implicit free-on-last unhold semantic whereas
vm_page_unwire() callers must explicitly determine whether to free the
page once the last reference to the page is released.

This change removes the KPIs which directly manipulate hold_count.
Functions such as vm_fault_quick_hold_pages() now return wired pages
instead.  Since r328977 the overhead of maintaining LRU for wired pages
is lower, and in many cases vm_fault_quick_hold_pages() callers would
swap holds for wirings on the returned pages anyway, so with this change
we remove a number of page lock acquisitions.

No functional change is intended.  __FreeBSD_version is bumped.

Reviewed by:	alc, kib
Discussed with:	jeff
Discussed with:	jhb, np (cxgbe)
Tested by:	pho (previous version)
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D19247
2019-07-08 19:46:20 +00:00
..
amd64 Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
arm Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
arm64 Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
bsm
cam Remove the CDIOCREADSUBCHANNEL_SYSSPACE ioctl. 2019-07-03 00:10:01 +00:00
cddl Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
compat Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
conf Fix build error introduced by r349596. 2019-07-03 01:40:29 +00:00
contrib Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
crypto aesni(4): Fix trivial type typo 2019-05-27 00:47:51 +00:00
ddb ddb show proc typo 2019-06-22 05:35:23 +00:00
dev Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
dts arm64: Add support for NanoPI NEO2 2019-05-02 12:56:13 +00:00
fs Add additional check for 'blocks per group' and 'fragments per group' superblock fields. 2019-07-07 08:58:02 +00:00
gdb
geom g_mirror_taste: avoid deadlock, always clear tasting flag 2019-07-01 22:06:36 +00:00
gnu dts: Import files from Linux 5.1 2019-05-08 19:27:30 +00:00
i386 Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
isa
kern Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
kgssapi Make the warning intervals for deprecated crypto algorithms tunable. 2019-06-11 23:00:55 +00:00
libkern Separate kernel crc32() implementation to its own header (gsb_crc32.h) and 2019-06-17 19:49:08 +00:00
mips Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
modules Add driver for NTB in AMD SoC. 2019-07-02 05:25:18 +00:00
net Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
net80211 Enhance the comment ieee80211_add_channel() to avoid a 2019-06-10 14:31:18 +00:00
netgraph Remove 'dir' argument in ng_ipfw_input, since ip_fw_args now has this info. 2019-03-14 22:30:05 +00:00
netinet Add an external mbuf buffer type that holds multiple unmapped pages. 2019-06-29 00:48:33 +00:00
netinet6 Add an external mbuf buffer type that holds multiple unmapped pages. 2019-06-29 00:48:33 +00:00
netipsec netipsec key_register: check for M_NOWAIT alloc failure 2019-06-25 15:43:52 +00:00
netpfil Convert all IPv4 and IPv6 multicast memberships into using a STAILQ 2019-06-25 11:54:41 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed Fix prio vs. nonprio tagged traffic in RDMACM 2019-06-04 06:21:31 +00:00
opencrypto Move declaration of warninterval out from under COMPAT_FREEBSD32. 2019-06-11 23:28:07 +00:00
powerpc Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
riscv Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
rpc Fix malloc stats for the RPCSEC_GSS server code when DEBUG is enabled. 2019-04-04 01:23:06 +00:00
security Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
sparc64 Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
sys Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
teken
tests
tools Add SDIO support. 2019-06-08 16:26:56 +00:00
ufs Add a new "untrusted" option to the mount command. Its purpose 2019-07-01 23:22:26 +00:00
vm Merge the vm_page hold and wire mechanisms. 2019-07-08 19:46:20 +00:00
x86 Currently, MCA entries remain on an every-growing linked list. This means 2019-06-08 18:26:48 +00:00
xdr
xen
Makefile