From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750956Ab3KYFFh (ORCPT ); Mon, 25 Nov 2013 00:05:37 -0500 Received: from LGEMRELSE1Q.lge.com ([156.147.1.111]:61196 "EHLO LGEMRELSE1Q.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750725Ab3KYFFe (ORCPT ); Mon, 25 Nov 2013 00:05:34 -0500 X-AuditID: 9c93016f-b7b6aae000005fae-93-5292da9c4396 From: Minchan Kim To: Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Jens Axboe , Greg Kroah-Hartman , Hugh Dickins , Rik van Riel , Konrad Rzeszutek Wilk , Seth Jennings , Nitin Gupta , Bob Liu , Luigi Semenzato , Pekka Enberg , Mel Gorman , Minchan Kim Subject: [PATCH v8 0/4] zram/zsmalloc promotion Date: Mon, 25 Nov 2013 14:06:14 +0900 Message-Id: <1385355978-6386-1-git-send-email-minchan@kernel.org> X-Mailer: git-send-email 1.7.9.5 X-Brightmail-Tracker: AAAAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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