Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3657c20d authored by Sergey SENOZHATSKY's avatar Sergey SENOZHATSKY Committed by Jonathan Corbet
Browse files

zram: update documentation



Several documentation changes.

First, we never mentioned any errors and never required any
error checks in documentation.

Second, mention that there is another way to configure and
manage zram devices -- zramctl, provided by util-linux.

Third, add a bit of clarification on why `mem_used_max' attr
is RW and correct some typos.

Signed-off-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 1c0032c8
Loading
Loading
Loading
Loading
+40 −4
Original line number Diff line number Diff line
@@ -14,8 +14,43 @@ Statistics for individual zram devices are exported through sysfs nodes at

* Usage

There are several ways to configure and manage zram device(-s):
a) using zram and zram_control sysfs attributes
b) using zramctl utility, provided by util-linux (util-linux@vger.kernel.org).

In this document we will describe only 'manual' zram configuration steps,
IOW, zram and zram_control sysfs attributes.

In order to get a better idea about zramctl please consult util-linux
documentation, zramctl man-page or `zramctl --help'. Please be informed
that zram maintainers do not develop/maintain util-linux or zramctl, should
you have any questions please contact util-linux@vger.kernel.org

Following shows a typical sequence of steps for using zram.

WARNING
=======
For the sake of simplicity we skip error checking parts in most of the
examples below. However, it is your sole responsibility to handle errors.

zram sysfs attributes always return negative values in case of errors.
The list of possible return codes:
-EBUSY	-- an attempt to modify an attribute that cannot be changed once
the device has been initialised. Please reset device first;
-ENOMEM	-- zram was not able to allocate enough memory to fulfil your
needs;
-EINVAL	-- invalid input has been provided.

If you use 'echo', the returned value that is changed by 'echo' utility,
and, in general case, something like:

	echo 3 > /sys/block/zram0/max_comp_streams
	if [ $? -ne 0 ];
		handle_error
	fi

should suffice.

1) Load Module:
	modprobe zram num_devices=4
	This creates 4 devices: /dev/zram{0,1,2,3}
@@ -47,7 +82,7 @@ max_comp_streams adjustment.

3) Select compression algorithm
	Using comp_algorithm device attribute one can see available and
	currently selected (shown in square brackets) compression algortithms,
	currently selected (shown in square brackets) compression algorithms,
	change selected compression algorithm (once the device is initialised
	there is no way to change compression algorithm).

@@ -119,7 +154,7 @@ execute
8) Stats:
Per-device statistics are exported as various nodes under /sys/block/zram<id>/

A brief description of exported device attritbutes. For more details please
A brief description of exported device attributes. For more details please
read Documentation/ABI/testing/sysfs-block-zram.

Name            access            description
@@ -140,8 +175,9 @@ zero_pages RO the number of zero filled pages written to this disk
orig_data_size    RO    uncompressed size of data stored in this disk
compr_data_size   RO    compressed size of data stored in this disk
mem_used_total    RO    the amount of memory allocated for this disk
mem_used_max      RW    the maximum amount memory zram have consumed to
                        store compressed data
mem_used_max      RW    the maximum amount of memory zram have consumed to
                        store the data (to reset this counter to the actual
                        current value, write 1 to this attribute)
mem_limit         RW    the maximum amount of memory ZRAM can use to store
                        the compressed data
pages_compacted   RO    the number of pages freed during compaction