linux/Documentation
Vitaly Wool 45190f01dd mm/zswap.c: add allocation hysteresis if pool limit is hit
zswap will always try to shrink pool when zswap is full.  If there is a
high pressure on zswap it will result in flipping pages in and out zswap
pool without any real benefit, and the overall system performance will
drop.  The previous discussion on this subject [1] ended up with a
suggestion to implement a sort of hysteresis to refuse taking pages into
zswap pool until it has sufficient space if the limit has been hit.
This is my take on this.

Hysteresis is controlled with a sysfs-configurable parameter (namely,
/sys/kernel/debug/zswap/accept_threhsold_percent).  It specifies the
threshold at which zswap would start accepting pages again after it
became full.  Setting this parameter to 100 disables the hysteresis and
sets the zswap behavior to pre-hysteresis state.

[1] https://lkml.org/lkml/2019/11/8/949

Link: http://lkml.kernel.org/r/20200108200118.15563-1-vitaly.wool@konsulko.com
Signed-off-by: Vitaly Wool <vitaly.wool@konsulko.com>
Cc: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-01-31 10:30:39 -08:00
..
ABI Staging/IIO patches for 5.6-rc1 2020-01-29 10:15:11 -08:00
accounting
admin-guide - Fix DM core's potential for q->make_request_fn NULL pointer in the 2020-01-29 18:08:49 -08:00
arm
arm64 Merge branch 'for-next/rng' into for-next/core 2020-01-22 11:38:53 +00:00
block docs: block/biovecs: update the location of bio.c 2020-01-10 10:23:15 -07:00
bpf bpf: Add s390 testing documentation 2019-10-30 16:25:31 +01:00
cdrom
core-api mm, tree-wide: rename put_user_page*() to unpin_user_page*() 2020-01-31 10:30:38 -08:00
cpu-freq
crypto crypto: algapi - make unregistration functions return void 2019-12-20 14:58:35 +08:00
dev-tools kunit: update documentation to describe module-based build 2020-01-09 16:44:10 -07:00
devicetree Char/Misc driver changes for 5.6-rc1 2020-01-29 10:35:54 -08:00
doc-guide Add a maintainer entry profile for documentation 2020-01-24 09:48:39 -07:00
driver-api Char/Misc driver changes for 5.6-rc1 2020-01-29 10:35:54 -08:00
EDID
fault-injection
fb
features riscv: gcov: enable gcov for RISC-V 2020-01-03 00:47:02 -08:00
filesystems It has been a relatively quiet cycle for documentation, but there's still a 2020-01-29 15:27:31 -08:00
firmware_class
firmware-guide docs: firmware-guide: ACPI: Replace dma_request_slave_channel() with dma_request_chan() 2019-12-19 22:58:12 +01:00
fpga Documentation: fpga: dfl: add descriptions for thermal/power management interfaces 2019-10-16 19:18:26 -07:00
gpu drm/amdgpu: Improve RAS documentation (v2) 2019-11-06 16:27:48 -05:00
hid
hwmon hwmon: (adm1177) Add ADM1177 Hot Swap Controller and Digital Power Monitor driver 2020-01-23 13:15:11 -08:00
i2c Here's the main documentation changes for 5.5: 2019-12-02 11:51:02 -08:00
ia64
ide
iio
infiniband
input
isdn isdn: capi: dead code removal 2019-12-11 09:12:38 +01:00
kbuild kbuild: clarify the difference between obj-y and obj-m w.r.t. descending 2019-12-22 00:25:35 +09:00
kernel-hacking Documentation: kernel-hacking: hacking.rst: Change reference to document namespaces.rst to symbol-namespaces.rst 2019-12-19 09:36:23 -07:00
leds
livepatch livepatch: Documentation of the new API for tracking system state changes 2019-11-01 13:08:24 +01:00
locking doc:locking: fix locktorture parameter description 2019-12-19 11:04:29 -07:00
m68k
maintainer Add a maintainer entry profile for documentation 2020-01-24 09:48:39 -07:00
media doc: fix typo of snapshot in documentation 2020-01-11 14:30:24 -08:00
mic
mips
misc-devices Documentation: fix Sphinx warning in xilinx_sdfec.rst 2019-12-19 09:26:25 -07:00
netlabel
networking Documentation: net: octeontx2: Add RVU HW and drivers overview 2020-01-27 14:33:40 +01:00
nios2
nvdimm docs: nvdimm: use ReST notation for subsection 2020-01-24 09:54:42 -07:00
openrisc
parisc
PCI
pcmcia
power pci-v5.5-changes 2019-12-03 13:58:22 -08:00
powerpc powerpc/fsl_booke/32: Document KASLR implementation 2019-11-13 19:27:58 +11:00
process It has been a relatively quiet cycle for documentation, but there's still a 2020-01-29 15:27:31 -08:00
RCU Merge branches 'doc.2019.12.10a', 'exp.2019.12.09a', 'fixes.2020.01.24a', 'kfree_rcu.2020.01.24a', 'list.2020.01.10a', 'preempt.2020.01.24a' and 'torture.2019.12.09a' into HEAD 2020-01-24 10:37:27 -08:00
riscv It has been a relatively quiet cycle for documentation, but there's still a 2020-01-29 15:27:31 -08:00
s390
scheduler Documentation/scheduler: fix links in sched-stats 2019-10-29 04:35:41 -06:00
scsi scsi: smartpqi: Update attribute name to driver_version 2019-12-09 19:17:36 -05:00
security Documentation: security: core.rst: fix warnings 2019-11-22 10:01:47 -07:00
sh
sound sound updates for 5.6-rc1 2020-01-28 16:26:57 -08:00
sparc
sphinx docs: Keep up with the location of NoUri 2020-01-24 09:47:05 -07:00
sphinx-static
spi
target
timers
trace docs: ftrace: Fix small notation mistake 2020-01-10 10:52:47 -07:00
translations docs/zh_CN: translate kernel enforcement statement 2019-12-30 12:00:46 -07:00
usb docs: usb: remove some broken references 2020-01-28 13:41:22 -07:00
userspace-api staging: remove isdn capi drivers 2019-12-11 09:11:29 +01:00
virt KVM: Add support for secure guests under the Protected Execution 2019-11-29 19:20:08 +01:00
virtual
vm mm/zswap.c: add allocation hysteresis if pool limit is hit 2020-01-31 10:30:39 -08:00
w1 docs: w1: Fix a typo in omap-hdq.rst 2019-12-30 11:58:02 -07:00
watchdog
x86 It has been a relatively quiet cycle for documentation, but there's still a 2020-01-29 15:27:31 -08:00
xtensa
.gitignore
asm-annotations.rst Documentation: Call out example SYM_FUNC_* usage as x86-specific 2020-01-16 12:53:16 -07:00
atomic_bitops.txt
atomic_t.txt
bus-virt-phys-mapping.txt
Changes
CodingStyle
conf.py
COPYING-logo
crc32.txt
debugging-modules.txt
debugging-via-ohci1394.txt
digsig.txt
DMA-API-HOWTO.txt
DMA-API.txt
DMA-attributes.txt dma-mapping: remove the DMA_ATTR_WRITE_BARRIER flag 2019-11-14 12:01:54 -04:00
DMA-ISA-LPC.txt
docutils.conf
dontdiff modpost: dump missing namespaces into a single modules.nsdeps file 2019-11-11 20:10:01 +09:00
futex-requeue-pi.txt
hwspinlock.txt
index.rst Here's the main documentation changes for 5.5: 2019-12-02 11:51:02 -08:00
io_ordering.txt
io-mapping.txt
IPMI.txt
IRQ-affinity.txt
IRQ-domain.txt
IRQ.txt
irqflags-tracing.txt
Kconfig
kobject.txt
kprobes.txt
kref.txt
logo.gif
lzo.txt
mailbox.txt
Makefile Kbuild updates for v5.5 2019-12-02 17:35:04 -08:00
memory-barriers.txt docs/memory-barriers.txt: Remove remaining references to mmiowb() 2019-11-22 10:00:46 -07:00
nommu-mmap.txt
percpu-rw-semaphore.txt
pi-futex.txt
preempt-locking.txt
rbtree.txt
remoteproc.txt
robust-futex-ABI.txt
robust-futexes.txt
rpmsg.txt
speculation.txt
static-keys.txt
SubmittingPatches
tee.txt Documentation: tee: add AMD-TEE driver details 2020-01-04 13:49:51 +08:00
this_cpu_ops.txt
unaligned-memory-access.txt
xz.txt