freebsd-dev/sys
Mark Johnston 2913cc4637 vm_pageout: Avoid rounding down the inactive scan target
With helper page daemon threads, enabled by default in r364786, we
divide the inactive target by the number of threads, rounding down, and
sum the total number of pages freed by the threads.  This sum is
compared with the original target, but by rounding down we might lose
pages, causing the page daemon control loop to conclude that inactive
queue scanning isn't keeping up with demand for free pages.  Typically
this results in excessive swapping.

Fix the problem by accounting for the error in the main pagedaemon
thread's target.  Note that by default the problem will manifest only in
systems with >16 CPUs in a NUMA domain.

Reviewed by:	cem
Discussed with:	dougm
Reported and tested by:	dhw, glebius
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26610
2020-10-02 19:16:06 +00:00
..
amd64 Remove svn:executable from a couple of vmm(4) source files. 2020-10-01 22:20:29 +00:00
arm Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
arm64 Add cd device to arm64 GENERIC 2020-10-01 13:29:29 +00:00
bsm
cam Revert most of r360179. 2020-09-25 21:19:56 +00:00
cddl loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
compat linuxkpi: Add dmi_* function 2020-10-02 18:28:00 +00:00
conf linuxkpi: Add dmi_* function 2020-10-02 18:28:00 +00:00
contrib OpenZFS: don't call fpu_kern_thread on i386 2020-10-02 01:25:08 +00:00
crypto libmd: fix assembly optimized skein implementation 2020-10-01 21:05:50 +00:00
ddb
dev Add pwm_backlight 2020-10-02 18:23:27 +00:00
dts
fs Modify the NFSv4.2 VOP_COPY_FILE_RANGE() client call to return after one 2020-10-01 00:47:35 +00:00
gdb gdb(4): Don't escape GDB special characters at application layer 2020-09-30 14:55:54 +00:00
geom geom_part: make it possible recovering broken GPT after some LBAs cut off 2020-09-17 04:39:39 +00:00
gnu
i386 Rename kernel option ACPI_DMAR to IOMMU. 2020-09-29 20:29:07 +00:00
isa
kern Fix the INVARIANTS build for 32-bit platforms 2020-10-02 18:54:37 +00:00
kgssapi State kgssapi dependency on xdr. 2020-09-17 22:29:38 +00:00
libkern arm64: check for CRC32 support via HWCAP 2020-09-08 15:39:19 +00:00
mips Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
modules linuxkpi: Add dmi_* function 2020-10-02 18:28:00 +00:00
net add SIOCGIFDATA ioctl 2020-09-28 16:54:39 +00:00
net80211 Provide MS() and SM() macros for 80211 and wireless drivers. 2020-09-24 10:57:39 +00:00
netgraph ng_l2tp: Fix callout synchronization in the rexmit timeout handler 2020-09-25 18:55:50 +00:00
netinet Improve the input validation and processing of cookies. 2020-09-29 09:36:06 +00:00
netinet6 Rework part of routing code to reduce difference to D26449. 2020-09-21 20:02:26 +00:00
netipsec
netpfil
netsmb
nfs
nfsclient
nfsserver
nlm nlm: clean up empty lines in .c and .h files 2020-09-01 22:14:52 +00:00
ofed
opencrypto Include sys/types.h here 2020-09-15 15:21:29 +00:00
powerpc Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
riscv riscv: handle access faults in user mode 2020-10-02 07:30:11 +00:00
rpc Fix a potential memory leak in the NFS over TLS handling code. 2020-09-05 00:50:52 +00:00
security mac_framework.h: fix build with DEBUG_VFS_LOCKS and !MAC 2020-09-03 20:30:52 +00:00
sys Bump __FreeBSD_version after latest linuxkpi changes 2020-10-02 18:29:25 +00:00
teken Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
tests Add small tool to invoke kernel test framework tests. 2020-09-02 09:20:40 +00:00
tools Make makesyscalls.lua initialize 'struct sysent' entries using c99 2020-09-25 09:34:00 +00:00
ufs Convert page cache read to VOP. 2020-09-15 22:06:36 +00:00
vm vm_pageout: Avoid rounding down the inactive scan target 2020-10-02 19:16:06 +00:00
x86 Rename kernel option ACPI_DMAR to IOMMU. 2020-09-29 20:29:07 +00:00
xdr
xen
Makefile