config ZCACHE
	tristate "Dynamic compression of swap pages and clean pagecache pages"
	depends on CRYPTO=y && SWAP=y && CLEANCACHE && FRONTSWAP
	select CRYPTO_LZO
	default n
	help
	  Zcache doubles RAM efficiency while providing a significant
	  performance boosts on many workloads.  Zcache uses
	  compression and an in-kernel implementation of transcendent
	  memory to store clean page cache pages and swap in RAM,
	  providing a noticeable reduction in disk I/O.

config ZCACHE_DEBUG
	bool "Enable debug statistics"
	depends on DEBUG_FS && ZCACHE
	default n
	help
	  This is used to provide an debugfs directory with counters of
	  how zcache is doing. You probably want to set this to 'N'.

config RAMSTER
	tristate "Cross-machine RAM capacity sharing, aka peer-to-peer tmem"
	depends on CONFIGFS_FS=y && SYSFS=y && !HIGHMEM && ZCACHE
	depends on NET
	# must ensure struct page is 8-byte aligned
	select HAVE_ALIGNED_STRUCT_PAGE if !64BIT
	default n
	help
	  RAMster allows RAM on other machines in a cluster to be utilized
	  dynamically and symmetrically instead of swapping to a local swap
	  disk, thus improving performance on memory-constrained workloads
	  while minimizing total RAM across the cluster.  RAMster, like
	  zcache2, compresses swap pages into local RAM, but then remotifies
	  the compressed pages to another node in the RAMster cluster.

config RAMSTER_DEBUG
        bool "Enable ramster debug statistics"
        depends on DEBUG_FS && RAMSTER
        default n
        help
          This is used to provide an debugfs directory with counters of
          how ramster is doing. You probably want to set this to 'N'.

# Depends on not-yet-upstreamed mm patches to export end_swap_bio_write and
# __add_to_swap_cache, and implement __swap_writepage (which is swap_writepage
# without the frontswap call. When these are in-tree, the dependency on
# BROKEN can be removed
config ZCACHE_WRITEBACK
	bool "Allow compressed swap pages to be writtenback to swap disk"
	depends on ZCACHE=y && BROKEN
	default n
	help
	  Zcache caches compressed swap pages (and other data) in RAM which
	  often improves performance by avoiding I/O's due to swapping.
	  In some workloads with very long-lived large processes, it can
	  instead reduce performance.  Writeback decompresses zcache-compressed
	  pages (in LRU order) when under memory pressure and writes them to
	  the backing swap disk to ameliorate this problem.  Policy driving
	  writeback is still under development.