You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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: Seth Jennings <sjenning@linux.vnet.ibm.com> Acked-by: Rik 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
4e2e2770b1
commit
2b2811178e
+20
@@ -488,6 +488,26 @@ config ZBUD
|
|||||||
deterministic reclaim properties that make it preferable to a higher
|
deterministic reclaim properties that make it preferable to a higher
|
||||||
density approach when reclaim will be used.
|
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
|
config MEM_SOFT_DIRTY
|
||||||
bool "Track memory changes"
|
bool "Track memory changes"
|
||||||
depends on CHECKPOINT_RESTORE && HAVE_ARCH_SOFT_DIRTY
|
depends on CHECKPOINT_RESTORE && HAVE_ARCH_SOFT_DIRTY
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ obj-$(CONFIG_HAVE_MEMBLOCK) += memblock.o
|
|||||||
obj-$(CONFIG_BOUNCE) += bounce.o
|
obj-$(CONFIG_BOUNCE) += bounce.o
|
||||||
obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o
|
obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o
|
||||||
obj-$(CONFIG_FRONTSWAP) += frontswap.o
|
obj-$(CONFIG_FRONTSWAP) += frontswap.o
|
||||||
|
obj-$(CONFIG_ZSWAP) += zswap.o
|
||||||
obj-$(CONFIG_HAS_DMA) += dmapool.o
|
obj-$(CONFIG_HAS_DMA) += dmapool.o
|
||||||
obj-$(CONFIG_HUGETLBFS) += hugetlb.o
|
obj-$(CONFIG_HUGETLBFS) += hugetlb.o
|
||||||
obj-$(CONFIG_NUMA) += mempolicy.o
|
obj-$(CONFIG_NUMA) += mempolicy.o
|
||||||
|
|||||||
+943
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user