On Thu, Aug 21, 2014 at 8:42 PM, Minchan Kim <minc...@kernel.org> wrote:
> Currently, zram has no feature to limit memory so theoretically
> zram can deplete system memory.
> Users have asked for a limit several times as even without exhaustion
> zram makes it hard to control memory usage of the platform.
> This patchset adds the feature.
>
> Patch 1 makes zs_get_total_size_bytes faster because it would be
> used frequently in later patches for the new feature.
>
> Patch 2 changes zs_get_total_size_bytes's return unit from bytes
> to page so that zsmalloc doesn't need unnecessary operation(ie,
> << PAGE_SHIFT).
>
> Patch 3 adds new feature. I added the feature into zram layer,
> not zsmalloc because limiation is zram's requirement, not zsmalloc
> so any other user using zsmalloc(ie, zpool) shouldn't affected
> by unnecessary branch of zsmalloc. In future, if every users
> of zsmalloc want the feature, then, we could move the feature
> from client side to zsmalloc easily but vice versa would be
> painful.
>
> Patch 4 adds news facility to report maximum memory usage of zram
> so that this avoids user polling frequently via /sys/block/zram0/
> mem_used_total and ensures transient max are not missed.

FWIW, with the minor update to checking the memparse in patch 3 David
mentioned, feel free to add to all the patches:

Reviewed-by: Dan Streetman <ddstr...@ieee.org>

>
> * From v3
>  * get_zs_total_size_byte function name change - Dan
>  * clarifiction of the document - Dan
>  * atomic account instead of introducing new lock in zsmalloc - David
>  * remove unnecessary atomic instruction in updating max - David
>
> * From v2
>  * introduce helper funcntion to update max_used_pages
>    for readability - David
>  * avoid unncessary zs_get_total_size call in updating loop
>    for max_used_pages - David
>
> * From v1
>  * rebased on next-20140815
>  * fix up race problem - David, Dan
>  * reset mem_used_max as current total_bytes, rather than 0 - David
>  * resetting works with only "0" write for extensiblilty - David, Dan
>
> Minchan Kim (4):
>   zsmalloc: move pages_allocated to zs_pool
>   zsmalloc: change return value unit of  zs_get_total_size_bytes
>   zram: zram memory size limitation
>   zram: report maximum used memory
>
>  Documentation/ABI/testing/sysfs-block-zram |  20 ++++++
>  Documentation/blockdev/zram.txt            |  25 +++++--
>  drivers/block/zram/zram_drv.c              | 101 
> ++++++++++++++++++++++++++++-
>  drivers/block/zram/zram_drv.h              |   6 ++
>  include/linux/zsmalloc.h                   |   2 +-
>  mm/zsmalloc.c                              |  30 ++++-----
>  6 files changed, 158 insertions(+), 26 deletions(-)
>
> --
> 2.0.0
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to