freebsd-nq/sys
Alan Cox e57dd910e6 Change vm_pageout_scan() to return a value indicating whether the free page
target was met.

Previously, vm_pageout_worker() itself checked the length of the free page
queues to determine whether vm_pageout_scan(pass >= 1)'s inactive queue scan
freed enough pages to meet the free page target.  Specifically,
vm_pageout_worker() used vm_paging_needed().  The trouble with
vm_paging_needed() is that it compares the length of the free page queues to
the wakeup threshold for the page daemon, which is much lower than the free
page target.  Consequently, vm_pageout_worker() could conclude that the
inactive queue scan succeeded in meeting its free page target when in fact
it did not; and rather than immediately triggering an all-out laundering
pass over the inactive queue, vm_pageout_worker() would go back to sleep
waiting for the free page count to fall below the page daemon wakeup
threshold again, at which point it will perform another limited (pass == 1)
scan over the inactive queue.

Changing vm_pageout_worker() to use vm_page_count_target() instead of
vm_paging_needed() won't work because any page allocations that happen
concurrently with the inactive queue scan will result in the free page count
being below the target at the end of a successful scan.  Instead, having
vm_pageout_scan() return a value indicating success or failure is the most
straightforward fix.

Reviewed by:	kib, markj
MFC after:	3 weeks
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D8111
2016-10-05 16:15:26 +00:00
..
amd64 Re-apply r306516 (by cem): 2016-10-04 17:01:24 +00:00
arm We don't use cpu_control on armv6, remove the macro there. 2016-10-05 14:00:05 +00:00
arm64 Merge ACPICA 20160930. 2016-10-04 20:27:15 +00:00
boot GELIBoot may attempt to read past the end of the disk 2016-10-04 16:33:03 +00:00
bsm
cam Do not retry on some security sense codes. 2016-10-05 00:45:58 +00:00
cddl zfs: fix a wrong assertion for extended attributes 2016-10-04 08:09:25 +00:00
compat linuxkpi: Fix PCI BAR lazy allocation support. 2016-09-30 05:51:11 +00:00
conf ARM: Disconnect elf_trampoline.c from ARMv6 build. 2016-10-05 12:17:43 +00:00
contrib Merge ACPICA 20160930. 2016-10-04 20:27:15 +00:00
crypto Fix typo in skein amd64 assembly 2016-09-08 02:38:55 +00:00
ddb Determine the operand/address size of %cs in a new function 2016-09-25 16:30:29 +00:00
dev Merge ACPICA 20160930. 2016-10-04 20:27:15 +00:00
fs vfs: remove the __bo_vnode field from struct vnode 2016-09-30 17:11:03 +00:00
gdb
geom [geom_redboot] Extend geom_redboot to handle non-zero fis offset. 2016-10-04 16:35:38 +00:00
gnu Revert and redo r306083. 2016-09-22 15:17:36 +00:00
i386 Re-apply r306516 (by cem): 2016-10-04 17:01:24 +00:00
isa
kern Correct some comments after r294299. 2016-10-04 21:44:20 +00:00
kgssapi
libkern
mips [ar531x] add initial port for the AR231x/531x series of SoCs. 2016-10-04 16:27:36 +00:00
modules Add rpi_ft5406 module and add it to extra modules in Raspberry Pi configs 2016-10-03 01:08:34 +00:00
net hyperv/hn: Add stubs for OFFLOAD_CURRENT_CONFIG and NETWORK_CHANGE status 2016-09-30 06:58:45 +00:00
net80211 net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
netgraph Avoid panic from ng_uncallout when unpluggin ethernet cable with active 2016-08-08 19:31:01 +00:00
netinet Add GARP retransmit capability 2016-10-02 01:42:45 +00:00
netinet6 nd6_dad_timer(): don't assert that the address is tentative. 2016-10-01 01:30:34 +00:00
netipsec Remove the 4.3BSD compatible macro m_copy(), use m_copym() instead. 2016-09-15 07:41:48 +00:00
netnatm
netpfil pf: remove fastroute tag 2016-10-04 19:35:14 +00:00
netsmb
nfs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
nfsclient
nfsserver
nlm When sleeping waiting for either local or remote advisory lock, 2016-06-26 20:08:42 +00:00
ofed Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4 2016-09-30 08:23:06 +00:00
opencrypto opencrypto AES-ICM: Fix heap corruption typo 2016-08-01 22:57:03 +00:00
pc98 Remove the ie(4) driver for Intel 82586 ISA Ethernet adapters. 2016-08-20 00:49:29 +00:00
powerpc Fix e500mc/derivatives cpu idle 2016-10-05 04:40:48 +00:00
riscv Various changes to pmap_ts_referenced() 2016-09-10 16:49:25 +00:00
rpc Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
security Don't check aq64_minfree which is unsigned for negative values. 2016-09-08 19:47:57 +00:00
sparc64 Various changes to pmap_ts_referenced() 2016-09-10 16:49:25 +00:00
sys Bump __FreeBSD_version for net80211(4) changes (r306590, r306591). 2016-10-02 20:48:12 +00:00
teken
tests
tools Consider CROSS_BINUTILS_PREFIX environment variable so we use correct 2016-08-10 13:49:17 +00:00
ufs vfs: remove the __bo_vnode field from struct vnode 2016-09-30 17:11:03 +00:00
vm Change vm_pageout_scan() to return a value indicating whether the free page 2016-10-05 16:15:26 +00:00
x86 Merge ACPICA 20160930. 2016-10-04 20:27:15 +00:00
xdr
xen xen/vchan: change license of header from Lesser GPL v2.1 to BSD 2016-09-30 13:41:24 +00:00
Makefile