kernel-ark/Documentation
Tejun Heo be09102b41 mm: memcg: allow lowering memory.swap.max below the current usage
Currently an attempt to set swap.max into a value lower than the actual
swap usage fails, which causes configuration problems as there's no way
of lowering the configuration below the current usage short of turning
off swap entirely.  This makes swap.max difficult to use and allows
delegatees to lock the delegator out of reducing swap allocation.

This patch updates swap_max_write() so that the limit can be lowered
below the current usage.  It doesn't implement active reclaiming of swap
entries for the following reasons.

* mem_cgroup_swap_full() already tells the swap machinary to
  aggressively reclaim swap entries if the usage is above 50% of
  limit, so simply lowering the limit automatically triggers gradual
  reclaim.

* Forcing back swapped out pages is likely to heavily impact the
  workload and mess up the working set.  Given that swap usually is a
  lot less valuable and less scarce, letting the existing usage
  dissipate over time through the above gradual reclaim and as they're
  falted back in is likely the better behavior.

Link: http://lkml.kernel.org/r/20180523185041.GR1718769@devbig577.frc2.facebook.com
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Roman Gushchin <guro@fb.com>
Acked-by: Rik van Riel <riel@surriel.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Shaohua Li <shli@fb.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-06-07 17:34:37 -07:00
..
ABI media updates for v4.18-rc1 2018-06-07 12:34:37 -07:00
accelerators ocxl: Document new OCXL IOCTLs 2018-06-03 20:40:33 +10:00
accounting
acpi ACPI / CPPC: Document CPPC sysfs interface 2018-04-24 12:33:28 +02:00
admin-guide mm: memcg: allow lowering memory.swap.max below the current usage 2018-06-07 17:34:37 -07:00
aoe
arm Documentation: arm: clean up Marvell Berlin family info 2018-05-16 13:11:57 -06:00
arm64 ARM: 2018-04-09 11:42:31 -07:00
auxdisplay
backlight
block There's been a fair amount of work in the docs tree this time around, 2018-06-04 12:34:27 -07:00
blockdev zram: introduce zram memory tracking 2018-06-07 17:34:34 -07:00
bpf bpf, doc: howto use/run the BPF selftests 2018-05-14 23:02:58 -07:00
bus-devices
cdrom
cgroup-v1 page cache: use xa_lock 2018-04-11 10:28:39 -07:00
cma
connector
console
core-api Printk changes for 4.18 2018-06-06 16:04:55 -07:00
cpu-freq cpufreq: Drop cpufreq_table_validate_and_show() 2018-04-10 08:40:45 +02:00
cpuidle cpuidle: Add definition of residency to sysfs documentation 2018-04-09 13:44:37 +02:00
crypto docs: */index.rst: Add newer documents to their respective index.rst 2018-05-08 09:57:35 -06:00
dev-tools doc: dev-tools: kselftest.rst: update contributing new tests 2018-04-27 16:56:15 -06:00
device-mapper dm thin: update Documentation to clarify when "read_only" is valid 2018-05-10 11:18:49 -04:00
devicetree media updates for v4.18-rc1 2018-06-07 12:34:37 -07:00
doc-guide MAINTAINERS & files: Canonize the e-mails I use at files 2018-05-04 06:21:06 -04:00
driver-api Driver core changes for 4.18-rc1 2018-06-05 16:29:19 -07:00
driver-model
early-userspace
EDID
extcon
fault-injection Documentation: nvme: Documentation for nvme fault injection 2018-03-26 08:53:43 -06:00
fb
features mm: introduce ARCH_HAS_PTE_SPECIAL 2018-06-07 17:34:35 -07:00
filesystems overlayfs fixes for 4.18 2018-06-07 08:53:50 -07:00
firmware_class
fmc
gpio Documentation: gpio: Move drivers-on-gpio.txt to driver-api 2018-03-23 04:22:29 +01:00
gpu Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2018-05-11 18:08:10 +02:00
hid
hwmon hwmon: (ltc2990) support all measurement modes 2018-05-21 07:52:01 -07:00
i2c i2c: ocores: update HDL sources URL 2018-05-29 20:14:32 +02:00
ia64
ide
iio
infiniband
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2018-04-05 13:21:57 -07:00
ioctl Char/Misc driver patches for 4.18-rc1 2018-06-05 16:20:22 -07:00
isdn Documentation/isdn: check and fix dead links ... 2018-03-26 12:31:13 -04:00
kbuild Documentation: kconfig: document a new Kconfig macro language 2018-05-29 03:31:19 +09:00
kdump
kernel-hacking
laptops
leds
lightnvm
livepatch livepatch: Allow to call a custom callback when freeing shadow variables 2018-04-17 13:42:48 +02:00
locking
m68k
maintainer
md
media media: cec: improve cec status documentation 2018-05-25 15:34:50 -04:00
memory-devices
mic
mips
misc-devices misc: IBM Virtual Management Channel Driver (VMC) 2018-05-14 16:35:42 +02:00
mmc
mtd
namespaces
netlabel
networking netdev-FAQ: clarify DaveM's position for stable backports 2018-06-05 14:19:45 -04:00
nfc
nios2
nvdimm
nvmem
openrisc
parisc
PCI
pcmcia
perf
phy
platform
power firmware: Fix firmware documentation for recent file renames 2018-04-23 13:03:26 +02:00
powerpc
pps
process There's been a fair amount of work in the docs tree this time around, 2018-06-04 12:34:27 -07:00
pti
ptp ptp: Fix documentation to match code. 2018-03-26 12:13:21 -04:00
rapidio
RCU doc: Ensure whatisRCU.txt actually says what RCU is 2018-05-15 10:28:12 -07:00
s390
scheduler sched/deadline/Documentation: Add overrun signal and GRUB-PA documentation 2018-05-14 09:12:27 +02:00
scsi block: remove BLK_EH_HANDLED 2018-05-29 08:59:21 -06:00
security docs: */index.rst: Add newer documents to their respective index.rst 2018-05-08 09:57:35 -06:00
serial
sh
sound sound updates for 4.18 2018-06-06 09:08:38 -07:00
sparc
sphinx MAINTAINERS & files: Canonize the e-mails I use at files 2018-05-04 06:21:06 -04:00
sphinx-static
spi
sysctl Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-06-06 18:39:49 -07:00
target
thermal thermal: Add cooling device's statistics in sysfs 2018-04-02 21:49:01 +08:00
timers
trace One new feature was added to ftrace, which is the trace_marker now supports 2018-06-06 16:39:18 -07:00
translations Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-06-04 16:40:11 -07:00
usb
userspace-api audit/stable-4.18 PR 20180605 2018-06-06 16:34:00 -07:00
virtual kvm: rename KVM_HINTS_DEDICATED to KVM_HINTS_REALTIME 2018-05-17 19:12:13 +02:00
vm docs/vm: move ksm and transhuge from "user" to "internals" section. 2018-05-29 06:45:55 -06:00
w1
watchdog watchdog: remove bfin_wdt driver 2018-03-26 15:57:04 +02:00
wimax
x86 Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-06-04 21:34:39 -07:00
xtensa
.gitignore
00-INDEX docs: admin-guide: add cgroup-v2 documentation 2018-05-10 15:42:41 -06:00
atomic_bitops.txt
atomic_t.txt
bt8xxgpio.txt
btmrvl.txt
bus-virt-phys-mapping.txt
Changes
clearing-warn-once.txt
CodingStyle
conf.py
cpu-load.txt
cputopology.txt
crc32.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt Documentation: remove stale firmware API reference 2018-05-14 16:44:41 +02:00
digsig.txt
DMA-API-HOWTO.txt
DMA-API.txt
DMA-attributes.txt
DMA-ISA-LPC.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 docs/vm: add index.rst and link MM documentation to top level index 2018-04-16 14:18:15 -06:00
intel_txt.txt
Intel-IOMMU.txt
io_ordering.txt
io-mapping.txt
iostats.txt
IPMI.txt
IRQ-affinity.txt
IRQ-domain.txt
IRQ.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
Makefile
memory-barriers.txt Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-06-04 16:40:11 -07: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
SAK.txt
sgi-ioc4.txt
siphash.txt
SM501.txt
smsc_ece1099.txt
speculation.txt
static-keys.txt
SubmittingPatches
svga.txt
switchtec.txt
sync_file.txt
tee.txt
this_cpu_ops.txt
unaligned-memory-access.txt
vfio-mediated-device.txt
vfio.txt vfio: fix documentation 2018-05-08 09:16:41 -06:00
video-output.txt
xillybus.txt
xz.txt
zorro.txt