config ZCACHE
	bool "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 RAMSTER
	bool "Cross-machine RAM capacity sharing, aka peer-to-peer tmem"
	depends on CONFIGFS_FS=y && SYSFS=y && !HIGHMEM && ZCACHE=y
	depends on NET
	# must ensure struct page is 8-byte aligned
	select HAVE_ALIGNED_STRUCT_PAGE if !64_BIT
	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.

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