mm/zswap: allow setting default status, compressor and allocator in Kconfig
The compressed cache for swap pages (zswap) currently needs from 1 to 3 extra kernel command line parameters in order to make it work: it has to be enabled by adding a "zswap.enabled=1" command line parameter and if one wants a different compressor or pool allocator than the default lzo / zbud combination then these choices also need to be specified on the kernel command line in additional parameters. Using a different compressor and allocator for zswap is actually pretty common as guides often recommend using the lz4 / z3fold pair instead of the default one. In such case it is also necessary to remember to enable the appropriate compression algorithm and pool allocator in the kernel config manually. Let's avoid the need for adding these kernel command line parameters and automatically pull in the dependencies for the selected compressor algorithm and pool allocator by adding an appropriate default switches to Kconfig. The default values for these options match what the code was using previously as its defaults. Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Vitaly Wool <vitaly.wool@konsulko.com> Link: http://lkml.kernel.org/r/20200202000112.456103-1-mail@maciej.szmigiero.name Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
4708f31885
commit
bb8b93b5b6
@@ -35,9 +35,11 @@ Zswap evicts pages from compressed cache on an LRU basis to the backing swap
|
||||
device when the compressed pool reaches its size limit. This requirement had
|
||||
been identified in prior community discussions.
|
||||
|
||||
Zswap is disabled by default but can be enabled at boot time by setting
|
||||
the ``enabled`` attribute to 1 at boot time. ie: ``zswap.enabled=1``. Zswap
|
||||
can also be enabled and disabled at runtime using the sysfs interface.
|
||||
Whether Zswap is enabled at the boot time depends on whether
|
||||
the ``CONFIG_ZSWAP_DEFAULT_ON`` Kconfig option is enabled or not.
|
||||
This setting can then be overridden by providing the kernel command line
|
||||
``zswap.enabled=`` option, for example ``zswap.enabled=0``.
|
||||
Zswap can also be enabled and disabled at runtime using the sysfs interface.
|
||||
An example command to enable zswap at runtime, assuming sysfs is mounted
|
||||
at ``/sys``, is::
|
||||
|
||||
@@ -64,9 +66,10 @@ allocation in zpool is not directly accessible by address. Rather, a handle is
|
||||
returned by the allocation routine and that handle must be mapped before being
|
||||
accessed. The compressed memory pool grows on demand and shrinks as compressed
|
||||
pages are freed. The pool is not preallocated. By default, a zpool
|
||||
of type zbud is created, but it can be selected at boot time by
|
||||
setting the ``zpool`` attribute, e.g. ``zswap.zpool=zbud``. It can
|
||||
also be changed at runtime using the sysfs ``zpool`` attribute, e.g.::
|
||||
of type selected in ``CONFIG_ZSWAP_ZPOOL_DEFAULT`` Kconfig option is created,
|
||||
but it can be overridden at boot time by setting the ``zpool`` attribute,
|
||||
e.g. ``zswap.zpool=zbud``. It can also be changed at runtime using the sysfs
|
||||
``zpool`` attribute, e.g.::
|
||||
|
||||
echo zbud > /sys/module/zswap/parameters/zpool
|
||||
|
||||
@@ -97,8 +100,9 @@ controlled policy:
|
||||
* max_pool_percent - The maximum percentage of memory that the compressed
|
||||
pool can occupy.
|
||||
|
||||
The default compressor is lzo, but it can be selected at boot time by
|
||||
setting the ``compressor`` attribute, e.g. ``zswap.compressor=lzo``.
|
||||
The default compressor is selected in ``CONFIG_ZSWAP_COMPRESSOR_DEFAULT``
|
||||
Kconfig option, but it can be overridden at boot time by setting the
|
||||
``compressor`` attribute, e.g. ``zswap.compressor=lzo``.
|
||||
It can also be changed at runtime using the sysfs "compressor"
|
||||
attribute, e.g.::
|
||||
|
||||
|
Reference in New Issue
Block a user