
Make sure that backends array has anything apart from the sentinel NULL value. We also select LZO_BACKEND if none backends were selected. Link: https://lkml.kernel.org/r/20240902105656.1383858-13-senozhatsky@chromium.org Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org> Cc: Minchan Kim <minchan@kernel.org> Cc: Nick Terrell <terrelln@fb.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
3.8 KiB
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 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.