[PATCH v2 0/4] skip swapcache for super fast device

From: Minchan Kim
Date: Tue Sep 19 2017 - 03:10:12 EST


With fast swap storage, platform want to use swap more aggressively
and swap-in is crucial to application latency.

The rw_page based synchronous devices like zram, pmem and btt are such
fast storage. When I profile swapin performance with zram lz4 decompress
test, S/W overhead is more than 70%. Maybe, it would be bigger in nvdimm.

This patch aims for reducing swap-in latency via skipping swapcache
if swap device is synchronous device like rw_page based device.

It enhances 45% my swapin test(5G sequential swapin, no readahead,
from 2.41sec to 1.64sec).

Andrew, [1] is zram specific patch so could be applied separately
but this patch is based on that so I include it in this series.

* From v1
* style fix
* a bug fix
* drop page-cluster based readahead off
* This regression could be solved by other patch from Huang.
http://lkml.kernel.org/r/87tw04in60.fsf@xxxxxxxxxxxxxxxxxxxx

Minchan Kim (4):
[1] zram: set BDI_CAP_STABLE_WRITES once
[2] bdi: introduce BDI_CAP_SYNCHRONOUS_IO
[3] mm:swap: introduce SWP_SYNCHRONOUS_IO
[4] mm:swap: skip swapcache for swapin of synchronous device

drivers/block/brd.c | 2 ++
drivers/block/zram/zram_drv.c | 16 +++++--------
drivers/nvdimm/btt.c | 3 +++
drivers/nvdimm/pmem.c | 2 ++
include/linux/backing-dev.h | 8 +++++++
include/linux/swap.h | 14 +++++++++++-
mm/memory.c | 52 ++++++++++++++++++++++++++++++-------------
mm/page_io.c | 6 ++---
mm/swapfile.c | 14 ++++++++----
9 files changed, 83 insertions(+), 34 deletions(-)

--
2.7.4