Re: [PATCH] zsmalloc: consider ZS_ALMOST_FULL as migrate source

2015-07-09 Thread Sergey Senozhatsky
On (07/10/15 14:21), Minchan Kim wrote: > > I mean I find your argument that some level of fragmentation > > can be of use to be valid, to some degree. > > The benefit I had in mind was to prevent failure of allocation. > Sure. I tested the patch. cat /sys/block/zram0/mm_stat 3122102272 2882639

Re: [PATCH] zsmalloc: consider ZS_ALMOST_FULL as migrate source

2015-07-09 Thread Minchan Kim
On Fri, Jul 10, 2015 at 01:19:29PM +0900, Sergey Senozhatsky wrote: > On (07/10/15 11:29), Minchan Kim wrote: > > Good question. > > > > My worry was failure of order-0 page allocation in zram-swap path > > when memory presssure is really heavy but I didn't insist to you > > from sometime. The rea

Re: [PATCH] zsmalloc: consider ZS_ALMOST_FULL as migrate source

2015-07-09 Thread Sergey Senozhatsky
On (07/10/15 11:29), Minchan Kim wrote: > Good question. > > My worry was failure of order-0 page allocation in zram-swap path > when memory presssure is really heavy but I didn't insist to you > from sometime. The reason I changed my mind was > > 1. It's almost dead system if there is no order-0

Re: [PATCH] zsmalloc: consider ZS_ALMOST_FULL as migrate source

2015-07-09 Thread Minchan Kim
On Fri, Jul 10, 2015 at 11:06:24AM +0900, Sergey Senozhatsky wrote: > On (07/10/15 10:32), Minchan Kim wrote: > > static struct page *isolate_source_page(struct size_class *class) > > { > > struct page *page; > > + int i; > > + bool found = false; > > > > why use 'bool found'? just ret

Re: [PATCH] zsmalloc: consider ZS_ALMOST_FULL as migrate source

2015-07-09 Thread Minchan Kim
Hi Sergey, On Fri, Jul 10, 2015 at 10:58:28AM +0900, Sergey Senozhatsky wrote: > On (07/10/15 10:32), Minchan Kim wrote: > > There is no reason to prevent select ZS_ALMOST_FULL as migration > > source if we cannot find source from ZS_ALMOST_EMPTY. > > > > With this patch, zs_can_compact will retu

Re: [PATCH] zsmalloc: consider ZS_ALMOST_FULL as migrate source

2015-07-09 Thread Sergey Senozhatsky
On (07/10/15 10:32), Minchan Kim wrote: > static struct page *isolate_source_page(struct size_class *class) > { > struct page *page; > + int i; > + bool found = false; > why use 'bool found'? just return `page', which will be either NULL or !NULL? -ss > - page = cla

Re: [PATCH] zsmalloc: consider ZS_ALMOST_FULL as migrate source

2015-07-09 Thread Sergey Senozhatsky
On (07/10/15 10:32), Minchan Kim wrote: > There is no reason to prevent select ZS_ALMOST_FULL as migration > source if we cannot find source from ZS_ALMOST_EMPTY. > > With this patch, zs_can_compact will return more exact result. > wouldn't that be too aggresive? drainig 'only ZS_ALMOST_EMPTY c