Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b281117 authored by Seth Jennings's avatar Seth Jennings Committed by Linus Torvalds
Browse files

zswap: add to mm/



zswap is a thin backend for frontswap that takes pages that are in the
process of being swapped out and attempts to compress them and store
them in a RAM-based memory pool.  This can result in a significant I/O
reduction on the swap device and, in the case where decompressing from
RAM is faster than reading from the swap device, can also improve
workload performance.

It also has support for evicting swap pages that are currently
compressed in zswap to the swap device on an LRU(ish) basis.  This
functionality makes zswap a true cache in that, once the cache is full,
the oldest pages can be moved out of zswap to the swap device so newer
pages can be compressed and stored in zswap.

This patch adds the zswap driver to mm/

Signed-off-by: default avatarSeth Jennings <sjenning@linux.vnet.ibm.com>
Acked-by: default avatarRik van Riel <riel@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Nitin Gupta <ngupta@vflare.org>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Dan Magenheimer <dan.magenheimer@oracle.com>
Cc: Robert Jennings <rcj@linux.vnet.ibm.com>
Cc: Jenifer Hopper <jhopper@us.ibm.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Johannes Weiner <jweiner@redhat.com>
Cc: Larry Woodman <lwoodman@redhat.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Dave Hansen <dave@sr71.net>
Cc: Joe Perches <joe@perches.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Cody P Schafer <cody@linux.vnet.ibm.com>
Cc: Hugh Dickens <hughd@google.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4e2e2770
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -488,6 +488,26 @@ config ZBUD
	  deterministic reclaim properties that make it preferable to a higher
	  density approach when reclaim will be used.

config ZSWAP
	bool "Compressed cache for swap pages (EXPERIMENTAL)"
	depends on FRONTSWAP && CRYPTO=y
	select CRYPTO_LZO
	select ZBUD
	default n
	help
	  A lightweight compressed cache for swap pages.  It takes
	  pages that are in the process of being swapped out and attempts to
	  compress them into a dynamically allocated RAM-based memory pool.
	  This can result in a significant I/O reduction on swap device and,
	  in the case where decompressing from RAM is faster that swap device
	  reads, can also improve workload performance.

	  This is marked experimental because it is a new feature (as of
	  v3.11) that interacts heavily with memory reclaim.  While these
	  interactions don't cause any known issues on simple memory setups,
	  they have not be fully explored on the large set of potential
	  configurations and workloads that exist.

config MEM_SOFT_DIRTY
	bool "Track memory changes"
	depends on CHECKPOINT_RESTORE && HAVE_ARCH_SOFT_DIRTY
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ obj-$(CONFIG_HAVE_MEMBLOCK) += memblock.o
obj-$(CONFIG_BOUNCE)	+= bounce.o
obj-$(CONFIG_SWAP)	+= page_io.o swap_state.o swapfile.o
obj-$(CONFIG_FRONTSWAP)	+= frontswap.o
obj-$(CONFIG_ZSWAP)	+= zswap.o
obj-$(CONFIG_HAS_DMA)	+= dmapool.o
obj-$(CONFIG_HUGETLBFS)	+= hugetlb.o
obj-$(CONFIG_NUMA) 	+= mempolicy.o

mm/zswap.c

0 → 100644
+943 −0

File added.

Preview size limit exceeded, changes collapsed.