+ documentation-zram-correct-algo-parameters-configuration-documentation.patch added to mm-unstable branch
Andrew Morton <[email protected]> Thu, 30 Jul 2026 13:18:53 -0700
| Newsgroups | org.kernel.vger.mm-commits |
|---|---|
| Message-ID | <[email protected]> |
The patch titled
Subject: Documentation: zram: correct algo parameters configuration documentation
has been added to the -mm mm-unstable branch. Its filename is
documentation-zram-correct-algo-parameters-configuration-documentation.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/documentation-zram-correct-algo-parameters-configuration-documentation.patch
This patch will later appear in the mm-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via various
branches at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there most days
------------------------------------------------------
From: Sergey Senozhatsky <[email protected]>
Subject: Documentation: zram: correct algo parameters configuration documentation
Date: Thu, 30 Jul 2026 16:51:46 +0900
zram has always reset all previously set parameters for the given
algorithm in comp_params_store(). Make documentation more clear and
explicitly state that all relevant/necessary parameters should be set in
one configuration write.
Link: https://lore.kernel.org/[email protected]
Signed-off-by: Sergey Senozhatsky <[email protected]>
Cc: Jonathan Corbet <[email protected]>
Cc: Minchan Kim <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---
Documentation/admin-guide/blockdev/zram.rst | 34 +++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
--- a/Documentation/admin-guide/blockdev/zram.rst~documentation-zram-correct-algo-parameters-configuration-documentation
+++ a/Documentation/admin-guide/blockdev/zram.rst
@@ -109,14 +109,41 @@ path to the `dict` along with other para
#pass path to pre-trained zstd dictionary
echo "algo=zstd dict=/etc/dictionary" > /sys/block/zram0/algorithm_params
+ #pass path to pre-trained zstd dictionary and compression level
+ echo "algo=zstd level=8 dict=/etc/dictionary" > \
+ /sys/block/zram0/algorithm_params
+
#same, but using algorithm priority
+ echo "algo=zstd priority=1" > /sys/block/zram0/recomp_algorithm
echo "priority=1 dict=/etc/dictionary" > \
/sys/block/zram0/algorithm_params
- #pass path to pre-trained zstd dictionary and compression level
+Each write to `algorithm_params` replaces the entire set of parameters of
+the corresponding algorithm, parameters that are not listed in the write
+are reset to their default values. Configure all of the parameters of an
+algorithm in one write::
+
+ #WRONG: the second write resets level back to its default value
+ echo "algo=zstd level=8" > /sys/block/zram0/algorithm_params
+ echo "algo=zstd dict=/etc/dictionary" > /sys/block/zram0/algorithm_params
+
+ #RIGHT
echo "algo=zstd level=8 dict=/etc/dictionary" > \
/sys/block/zram0/algorithm_params
+Select the compression algorithm before configuring its parameters. The
+parameters of one algorithm are not necessarily valid for another one, so
+changing the algorithm of a particular priority resets that priority's
+parameters::
+
+ #WRONG: comp_algorithm write resets the previously configured level
+ echo "level=8" > /sys/block/zram0/algorithm_params
+ echo zstd > /sys/block/zram0/comp_algorithm
+
+ #RIGHT
+ echo zstd > /sys/block/zram0/comp_algorithm
+ echo "algo=zstd level=8" > /sys/block/zram0/algorithm_params
+
Parameters are algorithm specific: not all algorithms support pre-trained
dictionaries, not all algorithms support `level`. Furthermore, for certain
algorithms `level` controls the compression level (the higher the value the
@@ -124,6 +151,11 @@ better the compression ratio, it even ca
algorithms), for other algorithms `level` is acceleration level (the higher
the value the lower the compression ratio).
+Parameters are handed over to the compression algorithm when the device is
+initialised, hence invalid parameters (or parameters that the selected
+algorithm does not support) are reported by the `disksize` write, and not
+by the `algorithm_params` write that has configured them.
+
Set Disksize
============
_
Patches currently in -mm which might be from [email protected] are
documentation-zram-remove-sections-numbering.patch
zram-set-default-primary-compressor-in-zram_destroy_comps.patch
zram-validate-deflate-params.patch
documentation-zram-correct-algo-parameters-configuration-documentation.patch