Re: [RFC 0/3] zram memory control enhance

From: Jerome Marchand
Date: Wed Aug 06 2014 - 08:54:49 EST


On 08/05/2014 10:02 AM, Minchan Kim wrote:
> Notice! It's RFC. I didn't test at all but wanted to hear opinion
> during merge window when it's really busy time for Andrew so we could
> use the slack time to discuss without hurting him. ;-)
>
> Patch 1 is to move pages_allocated in zsmalloc from size_class to zs_pool
> so zs_get_total_size_bytes of zsmalloc would be faster than old.
> zs_get_total_size_bytes could be used next patches frequently.
>
> Patch 2 adds new feature which exports how many of bytes zsmalloc consumes
> during testing workload. Normally, before fixing the zram's disksize
> we have tested various workload and wanted to how many of bytes zram
> consumed.
> For it, we could poll mem_used_total of zram in userspace but the problem is
> when memory pressure is severe and heavy swap out happens suddenly then
> heavy swapin or exist while polling interval of user space is a few second,
> it could miss max memory size zram had consumed easily.
> With lack of information, user can set wrong disksize of zram so the result
> is OOM. So this patch adds max_mem_used for zram and zsmalloc supports it
>
> Patch 3 is to limit zram memory consumption. Now, zram has no bound for
> memory usage so it could consume up all of system memory. It makes system
> memory control for platform hard so I have heard the feature several time.
>
> Feedback is welcome!

Hi,

I haven't really reviewed the code yet, but I like the general idea. The
third patch in particular provides a very useful feature. I'm actually
surprised no one provided it earlier.

Jerome


>
> Minchan Kim (3):
> zsmalloc: move pages_allocated to zs_pool
> zsmalloc/zram: add zs_get_max_size_bytes and use it in zram
> zram: limit memory size for zram
>
> Documentation/blockdev/zram.txt | 2 ++
> drivers/block/zram/zram_drv.c | 58 +++++++++++++++++++++++++++++++++++++++++
> drivers/block/zram/zram_drv.h | 1 +
> include/linux/zsmalloc.h | 1 +
> mm/zsmalloc.c | 50 +++++++++++++++++++++++++----------
> 5 files changed, 98 insertions(+), 14 deletions(-)
>


Attachment: signature.asc
Description: OpenPGP digital signature