freebsd-nq/sys
Konstantin Belousov 9997c0481c Do not let vm_daemon run unbounded.
On a load where single anonymous object consumes almost all memory on
the large system, swapout code executes the iteration over the
corresponding object page queue for long time, owning the map and
object locks.  This blocks pagedaemon which tries to lock the object,
and blocks other threads in the process in vm_fault() waiting for the
map lock.

Handle the issue by terminating the deactivation loop if we executed
too long and by yielding at the top level in vm_daemon.

Reported by:	peterj, pho
Reviewed by:	alc
Tested by:	pho (as part of the larger patch)
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D13671
2018-01-01 19:27:33 +00:00
..
amd64 Remove MP SAFE marks and stray register name in comments. 2017-12-31 17:07:59 +00:00
arm aw_sid: Add support for a64 2017-12-31 22:35:32 +00:00
arm64 Introduce an architecture-agnostic <sys/_stdarg.h> to reduce 2017-12-25 20:54:00 +00:00
bsm sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
cam ctl: Correct comment in ctl_worker_thread 2017-12-27 15:39:31 +00:00
cddl Remove obsolete register keyword from opensolaris's sysmacros.h. When 2017-12-24 19:17:15 +00:00
compat Update Matthew Macy contact info 2017-12-19 17:59:00 +00:00
conf Connect kern_tslog.c to the build and add TSLOG / TSLOGSIZE kernel options. 2017-12-31 09:21:34 +00:00
contrib MFC: r326864 2017-12-14 23:21:31 +00:00
crypto sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ddb ddb: fix validation of cpu id in 'set db_cpu=x' 2017-12-05 14:22:08 +00:00
dev Fix GCC build broken by r32744 2017-12-31 23:40:06 +00:00
dts dts: arm: Remove imx6 related dts 2017-12-04 13:28:56 +00:00
fs Reuse kern_proc_vmmap_resident() for procfs_map resident count. 2017-12-28 13:23:13 +00:00
gdb sys/gdb: further adoption of SPDX licensing ID tags. 2017-11-27 15:16:59 +00:00
geom Instrument "boot holds" for the benefit of the TSLOG framework. These 2017-12-31 09:23:52 +00:00
gnu Introduce bwn(4) support for the bhnd(4) bus. 2017-12-02 02:21:27 +00:00
i386 Move i386/isa/elink.[hc] to dev/ep. 2017-12-30 11:42:49 +00:00
isa On further testing on actual machines with this hardware, we should 2017-12-30 08:16:31 +00:00
kern Use the TSLOG framework to record entry/exit timestamps for DELAY and 2017-12-31 09:24:41 +00:00
kgssapi sys/kgssapi: general adoption of SPDX licensing ID tags. 2017-11-27 15:49:00 +00:00
libkern SPDX: fix wrong license ID tag in libkern. 2017-12-28 01:20:30 +00:00
mips Remove sys/mips/rmi. It's been unmaintained since 2011. This hardware 2018-01-01 05:13:03 +00:00
modules Move i386/isa/elink.[hc] to dev/ep. 2017-12-30 11:42:49 +00:00
net pf: Clean all fragments on shutdown 2017-12-31 10:01:31 +00:00
net80211 net80211: sanitize input for ieee80211_output() 2017-12-30 00:40:34 +00:00
netgraph sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
netinet Correct the comment describing badrs which is bad router solicitiation, 2017-12-29 07:23:18 +00:00
netinet6 Fix some typos. 2017-12-28 20:40:56 +00:00
netipsec Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
netpfil pf: Allow the module to be unloaded 2017-12-31 16:18:13 +00:00
netsmb sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
nfs Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
nfsclient sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
nfsserver sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
nlm Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
ofed sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
opencrypto Remove a redunant check. 2017-12-30 03:08:49 +00:00
powerpc Remove PIR from PCPU data. It has an implementation-defined meaning that 2017-12-31 20:23:39 +00:00
riscv Use the TSLOG framework to record entry/exit timestamps for DELAY and 2017-12-31 09:24:41 +00:00
rpc Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
security Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
sparc64 Chase r327432... sparc64 clock.c now needs to include sys/tslog.h 2017-12-31 20:30:51 +00:00
sys Add a validbcd() routine that uses the bcd2bin_data[] array and returns a 2017-12-31 22:43:24 +00:00
teken sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tests
tools Teach makeobjops.awk to accept PROLOG and EPILOG blocks before 2017-12-31 09:23:19 +00:00
ufs SPDX: Complete License ID tags for UFS. 2017-12-27 19:13:50 +00:00
vm Do not let vm_daemon run unbounded. 2018-01-01 19:27:33 +00:00
x86 Use the TSLOG framework to record entry/exit timestamps for DELAY and 2017-12-31 09:24:41 +00:00
xdr sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
xen sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
Makefile Move sys/boot to stand. Fix all references to new location 2017-11-14 23:02:19 +00:00