1 # SPDX-License-Identifier: GPL-2.0
3 tristate "Compressed RAM block device support"
4 depends on BLOCK && SYSFS && ZSMALLOC && CRYPTO
5 depends on CRYPTO_LZO || CRYPTO_ZSTD || CRYPTO_LZ4 || CRYPTO_LZ4HC || CRYPTO_842
7 Creates virtual block devices called /dev/zramX (X = 0, 1, ...).
8 Pages written to these disks are compressed and stored in memory
9 itself. These disks allow very fast I/O and compression provides
10 good amounts of memory savings.
12 It has several use cases, for example: /tmp storage, use as swap
13 disks and maybe many more.
15 See Documentation/admin-guide/blockdev/zram.rst for more information.
18 prompt "Default zram compressor"
19 default ZRAM_DEF_COMP_LZORLE
22 config ZRAM_DEF_COMP_LZORLE
26 config ZRAM_DEF_COMP_ZSTD
28 depends on CRYPTO_ZSTD
30 config ZRAM_DEF_COMP_LZ4
34 config ZRAM_DEF_COMP_LZO
38 config ZRAM_DEF_COMP_LZ4HC
40 depends on CRYPTO_LZ4HC
42 config ZRAM_DEF_COMP_842
50 default "lzo-rle" if ZRAM_DEF_COMP_LZORLE
51 default "zstd" if ZRAM_DEF_COMP_ZSTD
52 default "lz4" if ZRAM_DEF_COMP_LZ4
53 default "lzo" if ZRAM_DEF_COMP_LZO
54 default "lz4hc" if ZRAM_DEF_COMP_LZ4HC
55 default "842" if ZRAM_DEF_COMP_842
58 bool "Write back incompressible or idle page to backing device"
61 With incompressible page, there is no memory saving to keep it
62 in memory. Instead, write it out to backing device.
63 For this feature, admin should set up backing device via
64 /sys/block/zramX/backing_dev.
66 With /sys/block/zramX/{idle,writeback}, application could ask
67 idle page's writeback to the backing device to save in memory.
69 See Documentation/admin-guide/blockdev/zram.rst for more information.
71 config ZRAM_MEMORY_TRACKING
72 bool "Track zRam block status"
73 depends on ZRAM && DEBUG_FS
75 With this feature, admin can track the state of allocated blocks
76 of zRAM. Admin could see the information via
77 /sys/kernel/debug/zram/zramX/block_state.
79 See Documentation/admin-guide/blockdev/zram.rst for more information.