xref: /linux/drivers/block/zram/Kconfig (revision c771600c6af14749609b49565ffb4cac2959710d)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
2cd67e10aSMinchan Kimconfig ZRAM
3cd67e10aSMinchan Kim	tristate "Compressed RAM block device support"
46140ae41SRandy Dunlap	depends on BLOCK && SYSFS && MMU
5b3fbd58fSJohannes Weiner	select ZSMALLOC
6cd67e10aSMinchan Kim	help
7cd67e10aSMinchan Kim	  Creates virtual block devices called /dev/zramX (X = 0, 1, ...).
8cd67e10aSMinchan Kim	  Pages written to these disks are compressed and stored in memory
9cd67e10aSMinchan Kim	  itself. These disks allow very fast I/O and compression provides
10cd67e10aSMinchan Kim	  good amounts of memory savings.
11cd67e10aSMinchan Kim
12cd67e10aSMinchan Kim	  It has several use cases, for example: /tmp storage, use as swap
13cd67e10aSMinchan Kim	  disks and maybe many more.
14cd67e10aSMinchan Kim
15e7751617SMauro Carvalho Chehab	  See Documentation/admin-guide/blockdev/zram.rst for more information.
165a47074fSMinchan Kim
1722d651c3SSergey Senozhatskyconfig ZRAM_BACKEND_LZ4
1822d651c3SSergey Senozhatsky	bool "lz4 compression support"
1922d651c3SSergey Senozhatsky	depends on ZRAM
2022d651c3SSergey Senozhatsky	select LZ4_COMPRESS
2122d651c3SSergey Senozhatsky	select LZ4_DECOMPRESS
2222d651c3SSergey Senozhatsky
23c60a4ef5SSergey Senozhatskyconfig ZRAM_BACKEND_LZ4HC
24c60a4ef5SSergey Senozhatsky	bool "lz4hc compression support"
25c60a4ef5SSergey Senozhatsky	depends on ZRAM
26c60a4ef5SSergey Senozhatsky	select LZ4HC_COMPRESS
27c60a4ef5SSergey Senozhatsky	select LZ4_DECOMPRESS
28c60a4ef5SSergey Senozhatsky
2973e7d81aSSergey Senozhatskyconfig ZRAM_BACKEND_ZSTD
3073e7d81aSSergey Senozhatsky	bool "zstd compression support"
3173e7d81aSSergey Senozhatsky	depends on ZRAM
3273e7d81aSSergey Senozhatsky	select ZSTD_COMPRESS
3373e7d81aSSergey Senozhatsky	select ZSTD_DECOMPRESS
3473e7d81aSSergey Senozhatsky
3584112e31SSergey Senozhatskyconfig ZRAM_BACKEND_DEFLATE
3684112e31SSergey Senozhatsky	bool "deflate compression support"
3784112e31SSergey Senozhatsky	depends on ZRAM
3884112e31SSergey Senozhatsky	select ZLIB_DEFLATE
3984112e31SSergey Senozhatsky	select ZLIB_INFLATE
4084112e31SSergey Senozhatsky
411d3100cfSSergey Senozhatskyconfig ZRAM_BACKEND_842
421d3100cfSSergey Senozhatsky	bool "842 compression support"
431d3100cfSSergey Senozhatsky	depends on ZRAM
441d3100cfSSergey Senozhatsky	select 842_COMPRESS
451d3100cfSSergey Senozhatsky	select 842_DECOMPRESS
461d3100cfSSergey Senozhatsky
471a78390dSSergey Senozhatskyconfig ZRAM_BACKEND_FORCE_LZO
481a78390dSSergey Senozhatsky	depends on ZRAM
491a78390dSSergey Senozhatsky	def_bool !ZRAM_BACKEND_LZ4 && !ZRAM_BACKEND_LZ4HC && \
501a78390dSSergey Senozhatsky		!ZRAM_BACKEND_ZSTD && !ZRAM_BACKEND_DEFLATE && \
511a78390dSSergey Senozhatsky		!ZRAM_BACKEND_842
521a78390dSSergey Senozhatsky
531a78390dSSergey Senozhatskyconfig ZRAM_BACKEND_LZO
541a78390dSSergey Senozhatsky	bool "lzo and lzo-rle compression support" if !ZRAM_BACKEND_FORCE_LZO
551a78390dSSergey Senozhatsky	depends on ZRAM
561a78390dSSergey Senozhatsky	default ZRAM_BACKEND_FORCE_LZO
571a78390dSSergey Senozhatsky	select LZO_COMPRESS
581a78390dSSergey Senozhatsky	select LZO_DECOMPRESS
591a78390dSSergey Senozhatsky
602152247cSSergey Senozhatskychoice
612152247cSSergey Senozhatsky	prompt "Default zram compressor"
622152247cSSergey Senozhatsky	default ZRAM_DEF_COMP_LZORLE
632152247cSSergey Senozhatsky	depends on ZRAM
642152247cSSergey Senozhatsky
652152247cSSergey Senozhatskyconfig ZRAM_DEF_COMP_LZORLE
662152247cSSergey Senozhatsky	bool "lzo-rle"
672152247cSSergey Senozhatsky	depends on ZRAM_BACKEND_LZO
682152247cSSergey Senozhatsky
692152247cSSergey Senozhatskyconfig ZRAM_DEF_COMP_LZO
702152247cSSergey Senozhatsky	bool "lzo"
712152247cSSergey Senozhatsky	depends on ZRAM_BACKEND_LZO
722152247cSSergey Senozhatsky
7322d651c3SSergey Senozhatskyconfig ZRAM_DEF_COMP_LZ4
7422d651c3SSergey Senozhatsky	bool "lz4"
7522d651c3SSergey Senozhatsky	depends on ZRAM_BACKEND_LZ4
7622d651c3SSergey Senozhatsky
77c60a4ef5SSergey Senozhatskyconfig ZRAM_DEF_COMP_LZ4HC
78c60a4ef5SSergey Senozhatsky	bool "lz4hc"
79c60a4ef5SSergey Senozhatsky	depends on ZRAM_BACKEND_LZ4HC
80c60a4ef5SSergey Senozhatsky
8173e7d81aSSergey Senozhatskyconfig ZRAM_DEF_COMP_ZSTD
8273e7d81aSSergey Senozhatsky	bool "zstd"
8373e7d81aSSergey Senozhatsky	depends on ZRAM_BACKEND_ZSTD
8473e7d81aSSergey Senozhatsky
8584112e31SSergey Senozhatskyconfig ZRAM_DEF_COMP_DEFLATE
8684112e31SSergey Senozhatsky	bool "deflate"
8784112e31SSergey Senozhatsky	depends on ZRAM_BACKEND_DEFLATE
8884112e31SSergey Senozhatsky
891d3100cfSSergey Senozhatskyconfig ZRAM_DEF_COMP_842
901d3100cfSSergey Senozhatsky	bool "842"
911d3100cfSSergey Senozhatsky	depends on ZRAM_BACKEND_842
921d3100cfSSergey Senozhatsky
932152247cSSergey Senozhatskyendchoice
942152247cSSergey Senozhatsky
953d711a38SRui Salvaterraconfig ZRAM_DEF_COMP
963d711a38SRui Salvaterra	string
97*9f3310ccSGeert Uytterhoeven	depends on ZRAM
982152247cSSergey Senozhatsky	default "lzo-rle" if ZRAM_DEF_COMP_LZORLE
992152247cSSergey Senozhatsky	default "lzo" if ZRAM_DEF_COMP_LZO
10022d651c3SSergey Senozhatsky	default "lz4" if ZRAM_DEF_COMP_LZ4
101c60a4ef5SSergey Senozhatsky	default "lz4hc" if ZRAM_DEF_COMP_LZ4HC
10273e7d81aSSergey Senozhatsky	default "zstd" if ZRAM_DEF_COMP_ZSTD
10384112e31SSergey Senozhatsky	default "deflate" if ZRAM_DEF_COMP_DEFLATE
1041d3100cfSSergey Senozhatsky	default "842" if ZRAM_DEF_COMP_842
105917a59e8SSergey Senozhatsky	default "unset-value"
1063d711a38SRui Salvaterra
1075a47074fSMinchan Kimconfig ZRAM_WRITEBACK
108a939888eSMinchan Kim       bool "Write back incompressible or idle page to backing device"
1095a47074fSMinchan Kim       depends on ZRAM
1105a47074fSMinchan Kim       help
1112e16898dSSergey Senozhatsky	 This lets zram entries (incompressible or idle pages) be written
1122e16898dSSergey Senozhatsky	 back to a backing device, helping save memory.
1135a47074fSMinchan Kim	 For this feature, admin should set up backing device via
1145a47074fSMinchan Kim	 /sys/block/zramX/backing_dev.
1155a47074fSMinchan Kim
116a939888eSMinchan Kim	 With /sys/block/zramX/{idle,writeback}, application could ask
117a939888eSMinchan Kim	 idle page's writeback to the backing device to save in memory.
118a939888eSMinchan Kim
119e7751617SMauro Carvalho Chehab	 See Documentation/admin-guide/blockdev/zram.rst for more information.
120c0265342SMinchan Kim
121a7a03505SSergey Senozhatskyconfig ZRAM_TRACK_ENTRY_ACTIME
122a7a03505SSergey Senozhatsky	bool "Track access time of zram entries"
123a7a03505SSergey Senozhatsky	depends on ZRAM
124a7a03505SSergey Senozhatsky	help
125a7a03505SSergey Senozhatsky	  With this feature zram tracks access time of every stored
126a7a03505SSergey Senozhatsky	  entry (page), which can be used for a more fine grained IDLE
127a7a03505SSergey Senozhatsky	  pages writeback.
128a7a03505SSergey Senozhatsky
129c0265342SMinchan Kimconfig ZRAM_MEMORY_TRACKING
130c0265342SMinchan Kim	bool "Track zRam block status"
131c0265342SMinchan Kim	depends on ZRAM && DEBUG_FS
132a7a03505SSergey Senozhatsky	select ZRAM_TRACK_ENTRY_ACTIME
133c0265342SMinchan Kim	help
134c0265342SMinchan Kim	  With this feature, admin can track the state of allocated blocks
135c0265342SMinchan Kim	  of zRAM. Admin could see the information via
136c0265342SMinchan Kim	  /sys/kernel/debug/zram/zramX/block_state.
137c0265342SMinchan Kim
138e7751617SMauro Carvalho Chehab	  See Documentation/admin-guide/blockdev/zram.rst for more information.
13984b33bf7SSergey Senozhatsky
14084b33bf7SSergey Senozhatskyconfig ZRAM_MULTI_COMP
14184b33bf7SSergey Senozhatsky	bool "Enable multiple compression streams"
14284b33bf7SSergey Senozhatsky	depends on ZRAM
14384b33bf7SSergey Senozhatsky	help
14484b33bf7SSergey Senozhatsky	  This will enable multi-compression streams, so that ZRAM can
14584b33bf7SSergey Senozhatsky	  re-compress pages using a potentially slower but more effective
14684b33bf7SSergey Senozhatsky	  compression algorithm. Note, that IDLE page recompression
147a7a03505SSergey Senozhatsky	  requires ZRAM_TRACK_ENTRY_ACTIME.
148