freebsd-dev/sys
Mark Johnston 9f74cdbf78 Mark pages allocated from the per-CPU cache.
Only free pages to the cache when they were allocated from that cache.
This mitigates rapid fragmentation of physical memory seen during
poudriere's dependency calculation phase.  In particular, pages
belonging to broken reservations are no longer freed to the per-CPU
cache, so they get a chance to coalesce with freed pages during the
break.  Otherwise, the optimized CoW handler may create object
chains in which multiple objects contain pages from the same
reservation, and the order in which we do object termination means
that the reservation is broken before all of those pages are freed,
so some of them end up in the per-CPU cache and thus permanently
fragment physical memory.

The flag may also be useful for eliding calls to vm_reserv_free_page(),
thus avoiding memory accesses for data that is likely not present
in the CPU caches.

Reviewed by:	alc
Discussed with:	jeff
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D20763
2019-07-02 19:51:40 +00:00
..
amd64 Add driver for NTB in AMD SoC. 2019-07-02 05:25:18 +00:00
arm Display the approximate space needed when a minidump fails due to lack 2019-06-30 03:14:04 +00:00
arm64 arm64: efi: Map memory IO region as device 2019-07-01 22:11:56 +00:00
bsm
cam Replay r349342 by imp accidentally reverted by r349352 2019-06-25 06:14:31 +00:00
cddl Avoid extra taskq_dispatch() calls by DMU. 2019-06-25 18:35:23 +00:00
compat Control implicit PROT_MAX() using procctl(2) and the FreeBSD note 2019-07-02 19:07:17 +00:00
conf Add driver for NTB in AMD SoC. 2019-07-02 05:25:18 +00:00
contrib The RFC 3128 test should be made after the offset mask has been applied. 2019-06-30 22:32:33 +00:00
crypto
ddb ddb show proc typo 2019-06-22 05:35:23 +00:00
dev if_muge: set IFCAP_VLAN_MTU to maintain 1500 MTU with vlan use 2019-07-02 16:44:04 +00:00
dts
fs Free all allocated unit IDs in cuse(3) after the client character 2019-06-25 11:46:01 +00:00
gdb
geom g_mirror_taste: avoid deadlock, always clear tasting flag 2019-07-01 22:06:36 +00:00
gnu
i386 Add driver for NTB in AMD SoC. 2019-07-02 05:25:18 +00:00
isa
kern Style. 2019-07-02 19:32:48 +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 Display the approximate space needed when a minidump fails due to lack 2019-06-30 03:14:04 +00:00
modules Add driver for NTB in AMD SoC. 2019-07-02 05:25:18 +00:00
net Support IFCAP_NOMAP in vlan(4). 2019-06-29 00:51:38 +00:00
net80211 Enhance the comment ieee80211_add_channel() to avoid a 2019-06-10 14:31:18 +00:00
netgraph
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 powerpc/booke: Handle misaligned floating point loads/stores as on AIM 2019-06-26 01:14:39 +00:00
riscv Display the approximate space needed when a minidump fails due to lack 2019-06-30 03:14:04 +00:00
rpc
security
sparc64 sys: Remove DEV_RANDOM device option 2019-06-21 00:16:30 +00:00
sys Control implicit PROT_MAX() using procctl(2) and the FreeBSD note 2019-07-02 19:07:17 +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 Mark pages allocated from the per-CPU cache. 2019-07-02 19:51:40 +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