# SPDX-License-Identifier: GPL-2.0 config ZRAM tristate "Compressed RAM block device support" depends on BLOCK && SYSFS && MMU depends on HAVE_ZSMALLOC depends on CRYPTO_LZO || CRYPTO_ZSTD || CRYPTO_LZ4 || CRYPTO_LZ4HC || CRYPTO_842 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. choice prompt "Default zram compressor" default ZRAM_DEF_COMP_LZORLE depends on ZRAM config ZRAM_DEF_COMP_LZORLE bool "lzo-rle" depends on CRYPTO_LZO config ZRAM_DEF_COMP_ZSTD bool "zstd" depends on CRYPTO_ZSTD config ZRAM_DEF_COMP_LZ4 bool "lz4" depends on CRYPTO_LZ4 config ZRAM_DEF_COMP_LZO bool "lzo" depends on CRYPTO_LZO config ZRAM_DEF_COMP_LZ4HC bool "lz4hc" depends on CRYPTO_LZ4HC config ZRAM_DEF_COMP_842 bool "842" depends on CRYPTO_842 endchoice config ZRAM_DEF_COMP string default "lzo-rle" if ZRAM_DEF_COMP_LZORLE default "zstd" if ZRAM_DEF_COMP_ZSTD default "lz4" if ZRAM_DEF_COMP_LZ4 default "lzo" if ZRAM_DEF_COMP_LZO default "lz4hc" if ZRAM_DEF_COMP_LZ4HC default "842" if ZRAM_DEF_COMP_842 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.