Merge tag 'f2fs-for-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk...
[linux-2.6-microblaze.git] / drivers / block / zram / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config ZRAM
3         tristate "Compressed RAM block device support"
4         depends on BLOCK && SYSFS && MMU
5         depends on CRYPTO_LZO || CRYPTO_ZSTD || CRYPTO_LZ4 || CRYPTO_LZ4HC || CRYPTO_842
6         select ZSMALLOC
7         help
8           Creates virtual block devices called /dev/zramX (X = 0, 1, ...).
9           Pages written to these disks are compressed and stored in memory
10           itself. These disks allow very fast I/O and compression provides
11           good amounts of memory savings.
12
13           It has several use cases, for example: /tmp storage, use as swap
14           disks and maybe many more.
15
16           See Documentation/admin-guide/blockdev/zram.rst for more information.
17
18 choice
19         prompt "Default zram compressor"
20         default ZRAM_DEF_COMP_LZORLE
21         depends on ZRAM
22
23 config ZRAM_DEF_COMP_LZORLE
24         bool "lzo-rle"
25         depends on CRYPTO_LZO
26
27 config ZRAM_DEF_COMP_ZSTD
28         bool "zstd"
29         depends on CRYPTO_ZSTD
30
31 config ZRAM_DEF_COMP_LZ4
32         bool "lz4"
33         depends on CRYPTO_LZ4
34
35 config ZRAM_DEF_COMP_LZO
36         bool "lzo"
37         depends on CRYPTO_LZO
38
39 config ZRAM_DEF_COMP_LZ4HC
40         bool "lz4hc"
41         depends on CRYPTO_LZ4HC
42
43 config ZRAM_DEF_COMP_842
44         bool "842"
45         depends on CRYPTO_842
46
47 endchoice
48
49 config ZRAM_DEF_COMP
50         string
51         default "lzo-rle" if ZRAM_DEF_COMP_LZORLE
52         default "zstd" if ZRAM_DEF_COMP_ZSTD
53         default "lz4" if ZRAM_DEF_COMP_LZ4
54         default "lzo" if ZRAM_DEF_COMP_LZO
55         default "lz4hc" if ZRAM_DEF_COMP_LZ4HC
56         default "842" if ZRAM_DEF_COMP_842
57
58 config ZRAM_WRITEBACK
59        bool "Write back incompressible or idle page to backing device"
60        depends on ZRAM
61        help
62          With incompressible page, there is no memory saving to keep it
63          in memory. Instead, write it out to backing device.
64          For this feature, admin should set up backing device via
65          /sys/block/zramX/backing_dev.
66
67          With /sys/block/zramX/{idle,writeback}, application could ask
68          idle page's writeback to the backing device to save in memory.
69
70          See Documentation/admin-guide/blockdev/zram.rst for more information.
71
72 config ZRAM_MEMORY_TRACKING
73         bool "Track zRam block status"
74         depends on ZRAM && DEBUG_FS
75         help
76           With this feature, admin can track the state of allocated blocks
77           of zRAM. Admin could see the information via
78           /sys/kernel/debug/zram/zramX/block_state.
79
80           See Documentation/admin-guide/blockdev/zram.rst for more information.