summaryrefslogtreecommitdiff
path: root/drivers/block/zram/Kconfig
blob: 402b7b17586328078ba12fee78a6a7c052ee6eb4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# SPDX-License-Identifier: GPL-2.0
config ZRAM
	tristate "Compressed RAM block device support"
	depends on BLOCK && SYSFS && MMU
	select ZSMALLOC
	help
	  Creates virtual block devices called /dev/zramX (X = 0, 1, ...).
	  Pages written to these disks are compressed and stored in memory
	  itself. These disks allow very fast I/O and compression provides
	  good amounts of memory savings.

	  It has several use cases, for example: /tmp storage, use as swap
	  disks and maybe many more.

	  See Documentation/admin-guide/blockdev/zram.rst for more information.

config ZRAM_BACKEND_LZ4
	bool "lz4 compression support"
	depends on ZRAM
	select LZ4_COMPRESS
	select LZ4_DECOMPRESS

config ZRAM_BACKEND_LZ4HC
	bool "lz4hc compression support"
	depends on ZRAM
	select LZ4HC_COMPRESS
	select LZ4_DECOMPRESS

config ZRAM_BACKEND_ZSTD
	bool "zstd compression support"
	depends on ZRAM
	select ZSTD_COMPRESS
	select ZSTD_DECOMPRESS

config ZRAM_BACKEND_DEFLATE
	bool "deflate compression support"
	depends on ZRAM
	select ZLIB_DEFLATE
	select ZLIB_INFLATE

config ZRAM_BACKEND_842
	bool "842 compression support"
	depends on ZRAM
	select 842_COMPRESS
	select 842_DECOMPRESS

config ZRAM_BACKEND_FORCE_LZO
	depends on ZRAM
	def_bool !ZRAM_BACKEND_LZ4 && !ZRAM_BACKEND_LZ4HC && \
		!ZRAM_BACKEND_ZSTD && !ZRAM_BACKEND_DEFLATE && \
		!ZRAM_BACKEND_842

config ZRAM_BACKEND_LZO
	bool "lzo and lzo-rle compression support" if !ZRAM_BACKEND_FORCE_LZO
	depends on ZRAM
	default ZRAM_BACKEND_FORCE_LZO
	select LZO_COMPRESS
	select LZO_DECOMPRESS

choice
	prompt "Default zram compressor"
	default ZRAM_DEF_COMP_LZORLE
	depends on ZRAM

config ZRAM_DEF_COMP_LZORLE
	bool "lzo-rle"
	depends on ZRAM_BACKEND_LZO

config ZRAM_DEF_COMP_LZO
	bool "lzo"
	depends on ZRAM_BACKEND_LZO

config ZRAM_DEF_COMP_LZ4
	bool "lz4"
	depends on ZRAM_BACKEND_LZ4

config ZRAM_DEF_COMP_LZ4HC
	bool "lz4hc"
	depends on ZRAM_BACKEND_LZ4HC

config ZRAM_DEF_COMP_ZSTD
	bool "zstd"
	depends on ZRAM_BACKEND_ZSTD

config ZRAM_DEF_COMP_DEFLATE
	bool "deflate"
	depends on ZRAM_BACKEND_DEFLATE

config ZRAM_DEF_COMP_842
	bool "842"
	depends on ZRAM_BACKEND_842

endchoice

config ZRAM_DEF_COMP
	string
	depends on ZRAM
	default "lzo-rle" if ZRAM_DEF_COMP_LZORLE
	default "lzo" if ZRAM_DEF_COMP_LZO
	default "lz4" if ZRAM_DEF_COMP_LZ4
	default "lz4hc" if ZRAM_DEF_COMP_LZ4HC
	default "zstd" if ZRAM_DEF_COMP_ZSTD
	default "deflate" if ZRAM_DEF_COMP_DEFLATE
	default "842" if ZRAM_DEF_COMP_842
	default "unset-value"

config ZRAM_WRITEBACK
       bool "Write back incompressible or idle page to backing device"
       depends on ZRAM
       help
	 This lets zram entries (incompressible or idle pages) be written
	 back to a backing device, helping save memory.
	 For this feature, admin should set up backing device via
	 /sys/block/zramX/backing_dev.

	 With /sys/block/zramX/{idle,writeback}, application could ask
	 idle page's writeback to the backing device to save in memory.

	 See Documentation/admin-guide/blockdev/zram.rst for more information.

config ZRAM_TRACK_ENTRY_ACTIME
	bool "Track access time of zram entries"
	depends on ZRAM
	help
	  With this feature zram tracks access time of every stored
	  entry (page), which can be used for a more fine grained IDLE
	  pages writeback.

config ZRAM_MEMORY_TRACKING
	bool "Track zRam block status"
	depends on ZRAM && DEBUG_FS
	select ZRAM_TRACK_ENTRY_ACTIME
	help
	  With this feature, admin can track the state of allocated blocks
	  of zRAM. Admin could see the information via
	  /sys/kernel/debug/zram/zramX/block_state.

	  See Documentation/admin-guide/blockdev/zram.rst for more information.

config ZRAM_MULTI_COMP
	bool "Enable multiple compression streams"
	depends on ZRAM
	help
	  This will enable multi-compression streams, so that ZRAM can
	  re-compress pages using a potentially slower but more effective
	  compression algorithm. Note, that IDLE page recompression
	  requires ZRAM_TRACK_ENTRY_ACTIME.