linux/Documentation/vm
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
..
.gitignore Documentation/vm/.gitignore: add page-types 2009-09-24 07:20:57 -07:00
active_mm.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
balance.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
cleancache.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
frontswap.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
highmem.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
hmm.rst mm/mmu_notifiers: Use 'interval_sub' as the variable for mmu_interval_notifier 2020-01-14 11:54:47 -04:00
hugetlbfs_reserv.rst docs/vm: Minor editorial changes in the THP and hugetlbfs 2019-04-30 06:34:40 -06:00
hwpoison.rst docs/vm: hwpoison.rst: Fix quote formatting 2019-06-20 14:11:32 -06:00
index.rst docs/vm: add documentation of memory models 2019-04-30 06:30:01 -06:00
ksm.rst docs/vm: ksm: split userspace interface to admin-guide/mm/ksm.rst 2018-04-27 17:19:49 -06:00
memory-model.rst mm: document ZONE_DEVICE memory-model implications 2019-07-18 17:08:07 -07:00
mmu_notifier.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
numa.rst docs: cgroup-v1: add it to the admin-guide book 2019-07-15 11:03:02 -03:00
overcommit-accounting.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
page_frags.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
page_migration.rst docs: cgroup-v1: add it to the admin-guide book 2019-07-15 11:03:02 -03:00
page_owner.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
remap_file_pages.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
slub.rst docs: Add missing colon 2019-02-01 16:03:45 -07:00
split_page_table_lock.rst mm: treewide: clarify pgtable_page_{ctor,dtor}() naming 2019-09-26 10:10:44 -07:00
swap_numa.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
transhuge.rst docs/vm: Minor editorial changes in the THP and hugetlbfs 2019-04-30 06:34:40 -06:00
unevictable-lru.rst docs: cgroup-v1: add it to the admin-guide book 2019-07-15 11:03:02 -03:00
z3fold.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
zsmalloc.rst docs/vm: rename documentation files to .rst 2018-04-16 14:18:15 -06:00
zswap.rst mm/zswap.c: add allocation hysteresis if pool limit is hit 2020-01-31 10:30:39 -08:00