summaryrefslogtreecommitdiff
path: root/Documentation/admin-guide/blockdev
diff options
context:
space:
mode:
authorSergey Senozhatsky <senozhatsky@chromium.org>2026-07-30 16:51:46 +0900
committerAndrew Morton <akpm@linux-foundation.org>2026-08-24 18:42:57 -0700
commitf74e6dff5440f662bced614b723a7d8f2b05919d (patch)
treeceefd089947619585cc775d7428b78e992237298 /Documentation/admin-guide/blockdev
parent9477820c63cbf4d97114238f3d1ff10dfd6bee3f (diff)
downloadlinux-f74e6dff5440f662bced614b723a7d8f2b05919d.tar.gz
linux-f74e6dff5440f662bced614b723a7d8f2b05919d.zip
Documentation: zram: correct algo parameters configuration documentation
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/20260730075158.1339787-1-senozhatsky@chromium.org Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Minchan Kim <minchan@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'Documentation/admin-guide/blockdev')
-rw-r--r--Documentation/admin-guide/blockdev/zram.rst34
1 files changed, 33 insertions, 1 deletions
diff --git a/Documentation/admin-guide/blockdev/zram.rst b/Documentation/admin-guide/blockdev/zram.rst
index 2f6bbfd991fe..148b7cf3b924 100644
--- a/Documentation/admin-guide/blockdev/zram.rst
+++ b/Documentation/admin-guide/blockdev/zram.rst
@@ -109,14 +109,41 @@ path to the `dict` along with other parameters::
#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 can take negatives values for some
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
============