linux/Documentation
David Rientjes 5ecd9d403a mm, page_alloc: wakeup kcompactd even if kswapd cannot free more memory
Kswapd will not wakeup if per-zone watermarks are not failing or if too
many previous attempts at background reclaim have failed.

This can be true if there is a lot of free memory available.  For high-
order allocations, kswapd is responsible for waking up kcompactd for
background compaction.  If the zone is not below its watermarks or
reclaim has recently failed (lots of free memory, nothing left to
reclaim), kcompactd does not get woken up.

When __GFP_DIRECT_RECLAIM is not allowed, allow kcompactd to still be
woken up even if kswapd will not reclaim.  This allows high-order
allocations, such as thp, to still trigger background compaction even
when the zone has an abundance of free memory.

Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1803111659420.209721@chino.kir.corp.google.com
Signed-off-by: David Rientjes <rientjes@google.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-05 21:36:27 -07:00
..
ABI Char/Misc patches for 4.17-rc1 2018-04-04 20:07:20 -07:00
EDID
PCI PCI: Update location of pci.ids file 2018-02-22 15:00:43 -06:00
RCU
accelerators ocxl: Document the OCXL_IOCTL_GET_METADATA IOCTL 2018-03-02 13:02:15 +11:00
accounting
acpi
admin-guide mm, page_alloc: extend kernelcore and movablecore for percent 2018-04-05 21:36:25 -07:00
aoe
arm
arm64 arm64: Add work around for Arm Cortex-A55 Erratum 1024718 2018-03-26 18:01:44 +01:00
auxdisplay
backlight
block
blockdev
bpf bpf, doc: add description wrt native/bpf clang target and pointer size 2018-03-20 15:47:45 -07:00
bus-devices
cdrom
cgroup-v1
cma
connector
console
core-api Documentation: Mention why %p prints ptrval 2018-03-23 12:42:18 -06:00
cpu-freq
cpuidle
crypto crypto: doc - clarify hash callbacks state machine 2018-03-31 01:33:02 +08:00
dev-tools There's been a fair amount of activity in Documentation/ this time around: 2018-04-03 13:35:51 -07:00
device-mapper
devicetree Char/Misc patches for 4.17-rc1 2018-04-04 20:07:20 -07:00
doc-guide doc-guide: kernel-doc: add comment about formatting verification 2018-02-23 08:06:15 -07:00
driver-api Char/Misc patches for 4.17-rc1 2018-04-04 20:07:20 -07:00
driver-model
early-userspace
extcon
fault-injection
fb
features arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
filesystems various SMB3/CIFS fixes for 4.17 2018-04-04 14:09:27 -07:00
firmware_class
fmc
fpga
gpio
gpu Linux 4.16-rc7 2018-03-28 14:30:41 +10:00
hid
hwmon
i2c
ia64 ia64: doc: tweak whitespace for 'console=' parameter 2018-03-05 14:41:38 -08:00
ide
iio
infiniband Documentation/ABI: update infiniband sysfs interfaces 2018-02-23 08:18:33 -07:00
input Input: alps - Update documentation for trackstick v3 format 2018-03-26 08:40:34 -06:00
ioctl arch: remove tile port 2018-03-16 10:56:03 +01:00
isdn Documentation/isdn: check and fix dead links ... 2018-03-26 12:31:13 -04:00
kbuild Kconfig updates for v4.17 2018-04-03 16:28:01 -07:00
kdump
kernel-hacking
laptops
leds
lightnvm
livepatch
locking
m68k
maintainer
md
media media: cec-pin-error-inj.rst: document CEC Pin Error Injection 2018-03-22 08:54:21 -04:00
memory-devices
mic
mips
misc-devices
mmc
mtd
namespaces
netlabel
networking Staging/IIO patches for 4.17-rc1 2018-04-04 18:56:27 -07:00
nfc
nios2
nvdimm
nvmem
openrisc
parisc
pcmcia
perf
phy
platform
power PM / hibernate: Make passing hibernate offsets more friendly 2018-03-30 12:01:20 +02:00
powerpc
pps
process Kbuild updates for v4.17 2018-04-03 15:51:22 -07:00
pti
ptp ptp: Fix documentation to match code. 2018-03-26 12:13:21 -04:00
rapidio Documentation: rapidio: move sysfs interface to ABI 2018-02-23 08:25:45 -07:00
s390
scheduler
scsi
security
serial
sh
sound
sparc sparc64: Add support for ADI (Application Data Integrity) 2018-03-18 07:38:48 -07:00
sphinx Documentation/sphinx: Fix Directive import error 2018-03-09 10:46:14 -07:00
sphinx-static
spi
sysctl net: do not create fallback tunnels for non-default namespaces 2018-03-09 11:23:11 -05:00
target
thermal
timers
trace mm, page_alloc: wakeup kcompactd even if kswapd cannot free more memory 2018-04-05 21:36:27 -07:00
translations
usb
userspace-api
virtual KVM: x86: Add a framework for supporting MSR-based features 2018-03-01 19:00:28 +01:00
vm docs/vm: update 00-INDEX 2018-03-21 09:10:23 -06:00
w1
watchdog watchdog: remove bfin_wdt driver 2018-03-26 15:57:04 +02:00
wimax
x86 Merge branch 'x86/urgent' into x86/mm to pick up dependencies 2018-03-14 20:23:25 +01:00
xtensa
.gitignore
00-INDEX CRIS: Drop support for the CRIS port 2018-03-16 10:56:05 +01:00
Changes
CodingStyle
DMA-API-HOWTO.txt
DMA-API.txt
DMA-ISA-LPC.txt
DMA-attributes.txt
IPMI.txt
IRQ-affinity.txt
IRQ-domain.txt
IRQ.txt
Intel-IOMMU.txt
Makefile
SAK.txt
SM501.txt
SubmittingPatches
atomic_bitops.txt
atomic_t.txt
bcache.txt
bt8xxgpio.txt
btmrvl.txt
bus-virt-phys-mapping.txt
cachetlb.txt
cgroup-v2.txt
circular-buffers.txt
clearing-warn-once.txt
clk.txt
conf.py
cpu-load.txt
cputopology.txt
crc32.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
digsig.txt
docutils.conf
dontdiff
efi-stub.txt
eisa.txt
flexible-arrays.txt
futex-requeue-pi.txt
gcc-plugins.txt
highuid.txt
hw_random.txt
hwspinlock.txt
index.rst Documentation: add Linux tracing to Sphinx TOC tree 2018-03-07 10:22:53 -07:00
intel_txt.txt
io-mapping.txt
io_ordering.txt
iostats.txt
irqflags-tracing.txt
isa.txt
isapnp.txt
kernel-per-CPU-kthreads.txt
kobject.txt
kprobes.txt
kref.txt
ldm.txt
lockup-watchdogs.txt
logo.gif
logo.txt
lsm.txt
lzo.txt
mailbox.txt
memory-barriers.txt locking/memory-barriers: De-emphasize smp_read_barrier_depends() some more 2018-03-10 10:22:22 +01:00
memory-hotplug.txt
men-chameleon-bus.txt
nommu-mmap.txt
ntb.txt
numastat.txt
padata.txt
parport-lowlevel.txt
percpu-rw-semaphore.txt
phy.txt
pi-futex.txt
pnp.txt
preempt-locking.txt
pwm.txt
rbtree.txt
remoteproc.txt
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rpmsg.txt
rtc.txt
sgi-ioc4.txt
siphash.txt
smsc_ece1099.txt
speculation.txt
static-keys.txt
svga.txt
switchtec.txt
sync_file.txt
tee.txt
this_cpu_ops.txt
unaligned-memory-access.txt
vfio-mediated-device.txt
vfio.txt
video-output.txt
xillybus.txt
xz.txt
zorro.txt