# SPDX-License-Identifier: GPL-2.0-only
menu "Memory Management options"
#
# For some reason microblaze and nios2 hard code SWAP=n. Hopefully we can
# add proper SWAP support to them, in which case this can be remove.
#
config ARCH_NO_SWAP
bool
menuconfig SWAP
bool "Support for paging of anonymous memory (swap)"
depends on MMU && BLOCK && !ARCH_NO_SWAP
default y
help
This option allows you to choose whether you want to have support
for so called swap devices or swap files in your kernel that are
used to provide more virtual memory than the actual RAM present
in your computer. If unsure say Y.
config ZSWAP
bool "Compressed cache for swap pages"
depends on SWAP
select CRYPTO
select ZSMALLOC
help
A lightweight compressed cache for swap pages. It takes
pages that are in the process of being swapped out and attempts to
compress them into a dynamically allocated RAM-based memory pool.
This can result in a significant I/O reduction on swap device and,
in the case where decompressing from RAM is faster than swap device
reads, can also improve workload performance.
config ZSWAP_DEFAULT_ON
bool "Enable the compressed cache for swap pages by default"
depends on ZSWAP
help
If selected, the compressed cache for swap pages will be enabled
at boot, otherwise it will be disabled.
The selection made here can be overridden by using the kernel
command line 'zswap.enabled=' option.
config ZSWAP_SHRINKER_DEFAULT_ON
bool "Shrink the zswap pool on memory pressure"
depends on ZSWAP
default n
help
If selected, the zswap shrinker will be enabled, and the pages
stored in the zswap pool will become available for reclaim (i.e
written back to the backing swap device) on memory pressure.
This means that zswap writeback could happen even if the pool is
not yet full, or the cgroup zswap limit has not been reached,
reducing the chance that cold pages will reside in the zswap pool
and consume memory indefinitely.
choice
prompt "Default compressor"
depends on ZSWAP
default ZSWAP_COMPRESSOR_DEFAULT_LZO
help
Selects the default compression algorithm for the compressed cache
for swap pages.
For an overview what kind of performance can be expected from
a particular compression algorithm please refer to the benchmarks
available at the following LWN page:
https://lwn.net/Articles/751795/
If in doubt, select 'LZO'.
The selection made here can be ov