Kconfig 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. # SPDX-License-Identifier: GPL-2.0
  2. config ZRAM
  3. tristate "Compressed RAM block device support"
  4. depends on BLOCK && SYSFS && MMU
  5. select ZSMALLOC
  6. help
  7. Creates virtual block devices called /dev/zramX (X = 0, 1, ...).
  8. Pages written to these disks are compressed and stored in memory
  9. itself. These disks allow very fast I/O and compression provides
  10. good amounts of memory savings.
  11. It has several use cases, for example: /tmp storage, use as swap
  12. disks and maybe many more.
  13. See Documentation/admin-guide/blockdev/zram.rst for more information.
  14. config ZRAM_BACKEND_LZ4
  15. bool "lz4 compression support"
  16. depends on ZRAM
  17. select LZ4_COMPRESS
  18. select LZ4_DECOMPRESS
  19. config ZRAM_BACKEND_LZ4HC
  20. bool "lz4hc compression support"
  21. depends on ZRAM
  22. select LZ4HC_COMPRESS
  23. select LZ4_DECOMPRESS
  24. config ZRAM_BACKEND_ZSTD
  25. bool "zstd compression support"
  26. depends on ZRAM
  27. select ZSTD_COMPRESS
  28. select ZSTD_DECOMPRESS
  29. config ZRAM_BACKEND_DEFLATE
  30. bool "deflate compression support"
  31. depends on ZRAM
  32. select ZLIB_DEFLATE
  33. select ZLIB_INFLATE
  34. config ZRAM_BACKEND_842
  35. bool "842 compression support"
  36. depends on ZRAM
  37. select 842_COMPRESS
  38. select 842_DECOMPRESS
  39. config ZRAM_BACKEND_FORCE_LZO
  40. depends on ZRAM
  41. def_bool !ZRAM_BACKEND_LZ4 && !ZRAM_BACKEND_LZ4HC && \
  42. !ZRAM_BACKEND_ZSTD && !ZRAM_BACKEND_DEFLATE && \
  43. !ZRAM_BACKEND_842
  44. config ZRAM_BACKEND_LZO
  45. bool "lzo and lzo-rle compression support" if !ZRAM_BACKEND_FORCE_LZO
  46. depends on ZRAM
  47. default ZRAM_BACKEND_FORCE_LZO
  48. select LZO_COMPRESS
  49. select LZO_DECOMPRESS
  50. choice
  51. prompt "Default zram compressor"
  52. default ZRAM_DEF_COMP_LZORLE
  53. depends on ZRAM
  54. config ZRAM_DEF_COMP_LZORLE
  55. bool "lzo-rle"
  56. depends on ZRAM_BACKEND_LZO
  57. config ZRAM_DEF_COMP_LZO
  58. bool "lzo"
  59. depends on ZRAM_BACKEND_LZO
  60. config ZRAM_DEF_COMP_LZ4
  61. bool "lz4"
  62. depends on ZRAM_BACKEND_LZ4
  63. config ZRAM_DEF_COMP_LZ4HC
  64. bool "lz4hc"
  65. depends on ZRAM_BACKEND_LZ4HC
  66. config ZRAM_DEF_COMP_ZSTD
  67. bool "zstd"
  68. depends on ZRAM_BACKEND_ZSTD
  69. config ZRAM_DEF_COMP_DEFLATE
  70. bool "deflate"
  71. depends on ZRAM_BACKEND_DEFLATE
  72. config ZRAM_DEF_COMP_842
  73. bool "842"
  74. depends on ZRAM_BACKEND_842
  75. endchoice
  76. config ZRAM_DEF_COMP
  77. string
  78. depends on ZRAM
  79. default "lzo-rle" if ZRAM_DEF_COMP_LZORLE
  80. default "lzo" if ZRAM_DEF_COMP_LZO
  81. default "lz4" if ZRAM_DEF_COMP_LZ4
  82. default "lz4hc" if ZRAM_DEF_COMP_LZ4HC
  83. default "zstd" if ZRAM_DEF_COMP_ZSTD
  84. default "deflate" if ZRAM_DEF_COMP_DEFLATE
  85. default "842" if ZRAM_DEF_COMP_842
  86. default "unset-value"
  87. config ZRAM_WRITEBACK
  88. bool "Write back incompressible or idle page to backing device"
  89. depends on ZRAM
  90. help
  91. This lets zram entries (incompressible or idle pages) be written
  92. back to a backing device, helping save memory.
  93. For this feature, admin should set up backing device via
  94. /sys/block/zramX/backing_dev.
  95. With /sys/block/zramX/{idle,writeback}, application could ask
  96. idle page's writeback to the backing device to save in memory.
  97. See Documentation/admin-guide/blockdev/zram.rst for more information.
  98. config ZRAM_TRACK_ENTRY_ACTIME
  99. bool "Track access time of zram entries"
  100. depends on ZRAM
  101. help
  102. With this feature zram tracks access time of every stored
  103. entry (page), which can be used for a more fine grained IDLE
  104. pages writeback.
  105. config ZRAM_MEMORY_TRACKING
  106. bool "Track zRam block status"
  107. depends on ZRAM && DEBUG_FS
  108. select ZRAM_TRACK_ENTRY_ACTIME
  109. help
  110. With this feature, admin can track the state of allocated blocks
  111. of zRAM. Admin could see the information via
  112. /sys/kernel/debug/zram/zramX/block_state.
  113. See Documentation/admin-guide/blockdev/zram.rst for more information.
  114. config ZRAM_MULTI_COMP
  115. bool "Enable multiple compression streams"
  116. depends on ZRAM
  117. help
  118. This will enable multi-compression streams, so that ZRAM can
  119. re-compress pages using a potentially slower but more effective
  120. compression algorithm. Note, that IDLE page recompression
  121. requires ZRAM_TRACK_ENTRY_ACTIME.