summaryrefslogblamecommitdiff
path: root/drivers/block/zram/Kconfig
blob: 402b7b17586328078ba12fee78a6a7c052ee6eb4 (plain) (tree)
1
2
3
4
5
                                  

                                                      
                                        
                       








                                                                          
                                                                               
 





                                      





                                        





                                       





                                          





                                      












                                                                             












                                        



                                   



                                     



                                    



                                       



                                   

         

                    
                       

                                                 
                                          
                                              
                                            
                                                  
                                          
                             
 
                     
                                                                      
                      
           

                                                                         


                                                                 


                                                                       
                                                                              
 







                                                                      


                                      
                                      




                                                                          
                                                                               







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