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