# 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.
