[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1385355978-6386-1-git-send-email-minchan@kernel.org>
Date: Mon, 25 Nov 2013 14:06:14 +0900
From: Minchan Kim <minchan@...nel.org>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org, linux-mm@...ck.org,
Jens Axboe <axboe@...nel.dk>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Hugh Dickins <hughd@...gle.com>,
Rik van Riel <riel@...hat.com>,
Konrad Rzeszutek Wilk <konrad@...nok.org>,
Seth Jennings <sjenning@...ux.vnet.ibm.com>,
Nitin Gupta <ngupta@...are.org>, Bob Liu <bob.liu@...cle.com>,
Luigi Semenzato <semenzato@...gle.com>,
Pekka Enberg <penberg@...nel.org>,
Mel Gorman <mgorman@...e.de>, Minchan Kim <minchan@...nel.org>
Subject: [PATCH v8 0/4] zram/zsmalloc promotion
Zram is a simple pseudo block device which can keep data on
in-memory with compressed.[1]
It have been used for many embedded system for several years
One of significant usecase is in-memory swap device.
Because NAND which is very popular on most embedded device
is weak for frequent write without good wear-level
and slow I/O hurts system's responsiblity so zram is really
good choice to use memory efficiently.
In previous trial, there was some argument[2] that zram has
similar goal with zswap so let's merge zram's functionality
into zswap via adding pseudo block device in zswap but I and
some people(At least, Hugh and Rik) believe it's not a good idea.
[2][3][4] and zswap might go writethrough model[5]. It makes
clear difference zram and zswap.
Zram itself is simple/well-designed/good abstraciton so it has
clear market(ex, Android, TV, ChromeOS, some Linux distro) which
is never niche. :)
Another zram-blk's usecase is following as.
The admin can use it as tmpfs so it could help small memory system.
The tmpfs is never good solution for swapless embedded system.
Patch 1 adds new Kconfig for zram to use page table method instead
of copy.
Patch 2 adds more comment for zsmalloc.
Patch 3 moves zsmalloc under mm.
Patch 4 moves zram from driver/staging to driver/blocks, finally.
[1] http://en.wikipedia.org/wiki/Zram
[2] https://lkml.org/lkml/2013/8/21/54
[3] https://lkml.org/lkml/2013/11/13/570
[4] https://lkml.org/lkml/2013/11/7/318
[5] http://www.spinics.net/lists/linux-mm/msg65499.html
* From v7
* Remove unnecessary zswap VS zram comparison in cover letter.
* Add Reviewed-by/Acked-by I forgot.
* Remove exporting unmap_kernel_range patch. I will do if promotion is done.
* Move zsmalloc under mm - Hugh
Minchan Kim (3):
zsmalloc: add Kconfig for enabling page table method
zsmalloc: move it under mm
zram: promote zram from staging
Nitin Cupta (1):
zsmalloc: add more comment
drivers/block/Kconfig | 2 +
drivers/block/Makefile | 2 +
drivers/block/zram/Kconfig | 25 +
drivers/block/zram/Makefile | 3 +
drivers/block/zram/zram.txt | 77 +++
drivers/block/zram/zram_drv.c | 981 ++++++++++++++++++++++++++
drivers/staging/Kconfig | 4 -
drivers/staging/Makefile | 2 -
drivers/staging/zram/Kconfig | 25 -
drivers/staging/zram/Makefile | 3 -
drivers/staging/zram/zram.txt | 77 ---
drivers/staging/zram/zram_drv.c | 982 --------------------------
drivers/staging/zram/zram_drv.h | 125 ----
drivers/staging/zsmalloc/Kconfig | 11 -
drivers/staging/zsmalloc/Makefile | 3 -
drivers/staging/zsmalloc/zsmalloc-main.c | 1063 -----------------------------
drivers/staging/zsmalloc/zsmalloc.h | 43 --
include/linux/zram_drv.h | 124 ++++
include/linux/zsmalloc.h | 50 ++
mm/Kconfig | 25 +
mm/Makefile | 1 +
mm/zsmalloc.c | 1097 ++++++++++++++++++++++++++++++
22 files changed, 2387 insertions(+), 2338 deletions(-)
create mode 100644 drivers/block/zram/Kconfig
create mode 100644 drivers/block/zram/Makefile
create mode 100644 drivers/block/zram/zram.txt
create mode 100644 drivers/block/zram/zram_drv.c
delete mode 100644 drivers/staging/zram/Kconfig
delete mode 100644 drivers/staging/zram/Makefile
delete mode 100644 drivers/staging/zram/zram.txt
delete mode 100644 drivers/staging/zram/zram_drv.c
delete mode 100644 drivers/staging/zram/zram_drv.h
delete mode 100644 drivers/staging/zsmalloc/Kconfig
delete mode 100644 drivers/staging/zsmalloc/Makefile
delete mode 100644 drivers/staging/zsmalloc/zsmalloc-main.c
delete mode 100644 drivers/staging/zsmalloc/zsmalloc.h
create mode 100644 include/linux/zram_drv.h
create mode 100644 include/linux/zsmalloc.h
create mode 100644 mm/zsmalloc.c
--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists