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