Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0
2config ZRAM
3 tristate "Compressed RAM block device support"
4 depends on BLOCK && SYSFS && MMU
5 depends on CRYPTO_LZO || CRYPTO_ZSTD || CRYPTO_LZ4 || CRYPTO_LZ4HC || CRYPTO_842
6 select ZSMALLOC
7 help
8 Creates virtual block devices called /dev/zramX (X = 0, 1, ...).
9 Pages written to these disks are compressed and stored in memory
10 itself. These disks allow very fast I/O and compression provides
11 good amounts of memory savings.
12
13 It has several use cases, for example: /tmp storage, use as swap
14 disks and maybe many more.
15
16 See Documentation/admin-guide/blockdev/zram.rst for more information.
17
18choice
19 prompt "Default zram compressor"
20 default ZRAM_DEF_COMP_LZORLE
21 depends on ZRAM
22
23config ZRAM_DEF_COMP_LZORLE
24 bool "lzo-rle"
25 depends on CRYPTO_LZO
26
27config ZRAM_DEF_COMP_ZSTD
28 bool "zstd"
29 depends on CRYPTO_ZSTD
30
31config ZRAM_DEF_COMP_LZ4
32 bool "lz4"
33 depends on CRYPTO_LZ4
34
35config ZRAM_DEF_COMP_LZO
36 bool "lzo"
37 depends on CRYPTO_LZO
38
39config ZRAM_DEF_COMP_LZ4HC
40 bool "lz4hc"
41 depends on CRYPTO_LZ4HC
42
43config ZRAM_DEF_COMP_842
44 bool "842"
45 depends on CRYPTO_842
46
47endchoice
48
49config ZRAM_DEF_COMP
50 string
51 default "lzo-rle" if ZRAM_DEF_COMP_LZORLE
52 default "zstd" if ZRAM_DEF_COMP_ZSTD
53 default "lz4" if ZRAM_DEF_COMP_LZ4
54 default "lzo" if ZRAM_DEF_COMP_LZO
55 default "lz4hc" if ZRAM_DEF_COMP_LZ4HC
56 default "842" if ZRAM_DEF_COMP_842
57
58config ZRAM_WRITEBACK
59 bool "Write back incompressible or idle page to backing device"
60 depends on ZRAM
61 help
62 With incompressible page, there is no memory saving to keep it
63 in memory. Instead, write it out to backing device.
64 For this feature, admin should set up backing device via
65 /sys/block/zramX/backing_dev.
66
67 With /sys/block/zramX/{idle,writeback}, application could ask
68 idle page's writeback to the backing device to save in memory.
69
70 See Documentation/admin-guide/blockdev/zram.rst for more information.
71
72config ZRAM_MEMORY_TRACKING
73 bool "Track zRam block status"
74 depends on ZRAM && DEBUG_FS
75 help
76 With this feature, admin can track the state of allocated blocks
77 of zRAM. Admin could see the information via
78 /sys/kernel/debug/zram/zramX/block_state.
79
80 See Documentation/admin-guide/blockdev/zram.rst for more information.
81
82config ZRAM_MULTI_COMP
83 bool "Enable multiple compression streams"
84 depends on ZRAM
85 help
86 This will enable multi-compression streams, so that ZRAM can
87 re-compress pages using a potentially slower but more effective
88 compression algorithm. Note, that IDLE page recompression
89 requires ZRAM_MEMORY_TRACKING.