Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-17 Thread Sergey Senozhatsky
On (06/18/15 12:39), Minchan Kim wrote: [..] > > ah, I see. > > it doesn't hold the lock `until all the pages are done`. it holds it > > as long as zs_can_compact() returns > 0. hm, I'm not entirely sure that > > this patch set has increased the locking time (in average). > > I see your point. Sor

Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-17 Thread Minchan Kim
On Thu, Jun 18, 2015 at 12:01:36PM +0900, Sergey Senozhatsky wrote: > On (06/18/15 11:41), Sergey Senozhatsky wrote: > [..] > > > My concern is not a compacion overhead but higher memory footprint > > > consumed by zram in reserved memory. > > > It might hang system if zram used up reserved memory

Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-17 Thread Minchan Kim
On Thu, Jun 18, 2015 at 11:41:07AM +0900, Sergey Senozhatsky wrote: > Hi, > > On (06/18/15 10:50), Minchan Kim wrote: > [..] > > > hm, what's the difference with the existing implementation? > > > The 'new one' aborts when (a) !zs_can_compact() and (b) !migrate_zspage(). > > > It holds the class l

Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-17 Thread Sergey Senozhatsky
On (06/18/15 11:41), Sergey Senozhatsky wrote: [..] > > My concern is not a compacion overhead but higher memory footprint > > consumed by zram in reserved memory. > > It might hang system if zram used up reserved memory of system with > > ALLOC_NO_WATERMARKS. With auto-compaction, userspace has a

Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-17 Thread Sergey Senozhatsky
Hi, On (06/18/15 10:50), Minchan Kim wrote: [..] > > hm, what's the difference with the existing implementation? > > The 'new one' aborts when (a) !zs_can_compact() and (b) !migrate_zspage(). > > It holds the class lock less time than current compaction. > > At old, it unlocks periodically(ie, pe

Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-17 Thread Minchan Kim
Hi Sergey, On Wed, Jun 17, 2015 at 12:45:29AM +0900, Sergey Senozhatsky wrote: > On (06/16/15 23:47), Minchan Kim wrote: > [..] > > > > > > Compaction now has a relatively quick pool scan so we are able to > > > estimate the number of pages that will be freed easily, which makes it > > > possible

Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-17 Thread Sergey Senozhatsky
Hello, On (06/16/15 23:47), Minchan Kim wrote: [..] > > I like the idea but still have a concern to lack of fragmented zspages > during memory pressure because auto-compaction will prevent fragment > most of time. Surely, using fragment space as buffer in heavy memory > pressure is not intened de

Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-16 Thread Sergey Senozhatsky
On (06/16/15 23:47), Minchan Kim wrote: [..] > > > > Compaction now has a relatively quick pool scan so we are able to > > estimate the number of pages that will be freed easily, which makes it > > possible to call this function from a shrinker->count_objects() callback. > > We also abort compacti

Re: [RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-16 Thread Minchan Kim
On Fri, Jun 05, 2015 at 09:03:58PM +0900, Sergey Senozhatsky wrote: > Perform automatic pool compaction by a shrinker when system > is getting tight on memory. > > Demonstration (this output is merely to show auto-compaction > effectiveness and is not part of the code): > [..] > [ 4283.803766] zra

[RFC][PATCHv2 8/8] zsmalloc: register a shrinker to trigger auto-compaction

2015-06-05 Thread Sergey Senozhatsky
Perform automatic pool compaction by a shrinker when system is getting tight on memory. Demonstration (this output is merely to show auto-compaction effectiveness and is not part of the code): [..] [ 4283.803766] zram0 zs_shrinker_scan freed 364 [ 4285.398937] zram0 zs_shrinker_scan freed 471 [ 42