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