xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/zram/README (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Workerzram: Compressed RAM based block devices
2*053f45beSAndroid Build Coastguard Worker----------------------------------------
3*053f45beSAndroid Build Coastguard Worker* Introduction
4*053f45beSAndroid Build Coastguard Worker
5*053f45beSAndroid Build Coastguard WorkerThe zram module creates RAM based block devices named /dev/zram<id>
6*053f45beSAndroid Build Coastguard Worker(<id> = 0, 1, ...). Pages written to these disks are compressed and stored
7*053f45beSAndroid Build Coastguard Workerin memory itself. These disks allow very fast I/O and compression provides
8*053f45beSAndroid Build Coastguard Workergood amounts of memory savings. Some of the usecases include /tmp storage,
9*053f45beSAndroid Build Coastguard Workeruse as swap disks, various caches under /var and maybe many more :)
10*053f45beSAndroid Build Coastguard Worker
11*053f45beSAndroid Build Coastguard WorkerStatistics for individual zram devices are exported through sysfs nodes at
12*053f45beSAndroid Build Coastguard Worker/sys/block/zram<id>/
13*053f45beSAndroid Build Coastguard Worker
14*053f45beSAndroid Build Coastguard WorkerKconfig required:
15*053f45beSAndroid Build Coastguard WorkerCONFIG_ZRAM=y
16*053f45beSAndroid Build Coastguard WorkerCONFIG_CRYPTO_LZ4=y
17*053f45beSAndroid Build Coastguard WorkerCONFIG_ZPOOL=y
18*053f45beSAndroid Build Coastguard WorkerCONFIG_ZSMALLOC=y
19*053f45beSAndroid Build Coastguard Worker
20*053f45beSAndroid Build Coastguard WorkerZRAM Testcases
21*053f45beSAndroid Build Coastguard Worker--------------
22*053f45beSAndroid Build Coastguard Workerzram_lib.sh: create library with initialization/cleanup functions
23*053f45beSAndroid Build Coastguard Workerzram.sh: For sanity check of CONFIG_ZRAM and to run zram01 and zram02
24*053f45beSAndroid Build Coastguard Worker
25*053f45beSAndroid Build Coastguard WorkerTwo functional tests: zram01 and zram02:
26*053f45beSAndroid Build Coastguard Workerzram01.sh: creates general purpose ram disks with ext4 filesystems
27*053f45beSAndroid Build Coastguard Workerzram02.sh: creates block device for swap
28*053f45beSAndroid Build Coastguard Worker
29*053f45beSAndroid Build Coastguard WorkerCommands required for testing:
30*053f45beSAndroid Build Coastguard Worker - bc
31*053f45beSAndroid Build Coastguard Worker - dd
32*053f45beSAndroid Build Coastguard Worker - free
33*053f45beSAndroid Build Coastguard Worker - awk
34*053f45beSAndroid Build Coastguard Worker - mkswap
35*053f45beSAndroid Build Coastguard Worker - swapon
36*053f45beSAndroid Build Coastguard Worker - swapoff
37*053f45beSAndroid Build Coastguard Worker - mkfs/ mkfs.ext4
38*053f45beSAndroid Build Coastguard Worker
39*053f45beSAndroid Build Coastguard WorkerFor more information please refer:
40*053f45beSAndroid Build Coastguard Workerkernel-source-tree/Documentation/admin-guide/blockdev/zram.rst
41