Messages in this thread | | | From | Minchan Kim <> | Subject | [PATCH v9 0/4] zram/zsmalloc promotion | Date | Wed, 11 Dec 2013 11:04:35 +0900 |
| |
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 v8 * Move zram.txt into Documentation/blockdev/ - Jerome * Rebased on next-20131210
* 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
Documentation/blockdev/zram.txt | 77 +++ drivers/block/Kconfig | 2 + drivers/block/Makefile | 1 + drivers/block/zram/Kconfig | 25 + drivers/block/zram/Makefile | 3 + drivers/block/zram/zram_drv.c | 994 +++++++++++++++++++++++++++ drivers/block/zram/zram_drv.h | 124 ++++ 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 | 994 --------------------------- drivers/staging/zram/zram_drv.h | 125 ---- drivers/staging/zsmalloc/Kconfig | 11 - drivers/staging/zsmalloc/Makefile | 3 - drivers/staging/zsmalloc/zsmalloc-main.c | 1072 ----------------------------- drivers/staging/zsmalloc/zsmalloc.h | 43 -- include/linux/zsmalloc.h | 50 ++ mm/Kconfig | 25 + mm/Makefile | 1 + mm/zsmalloc.c | 1106 ++++++++++++++++++++++++++++++ 22 files changed, 2408 insertions(+), 2359 deletions(-) create mode 100644 Documentation/blockdev/zram.txt create mode 100644 drivers/block/zram/Kconfig create mode 100644 drivers/block/zram/Makefile create mode 100644 drivers/block/zram/zram_drv.c create mode 100644 drivers/block/zram/zram_drv.h 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/zsmalloc.h create mode 100644 mm/zsmalloc.c
-- 1.7.9.5
| |