Messages in this thread | | | Date | Thu, 26 Mar 2015 16:39:17 +0900 | From | Minchan Kim <> | Subject | Re: [withdrawn] zsmalloc-remove-extra-cond_resched-in-__zs_compact.patch removed from -mm tree |
| |
Hello Sergey,
Sorry for slow response. I am overwhelmed with too much to do. :(
On Thu, Mar 26, 2015 at 09:27:17AM +0900, Sergey Senozhatsky wrote: > On (03/25/15 13:25), akpm@linux-foundation.org wrote: > > The patch titled > > Subject: zsmalloc: remove extra cond_resched() in __zs_compact > > has been removed from the -mm tree. Its filename was > > zsmalloc-remove-extra-cond_resched-in-__zs_compact.patch > > > > This patch was dropped because it was withdrawn > > > > ------------------------------------------------------ > > From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> > > Subject: zsmalloc: remove extra cond_resched() in __zs_compact > > > > Do not perform cond_resched() before the busy compaction loop in > > __zs_compact(), because this loop does it when needed. > > > > Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> > > Cc: Minchan Kim <minchan@kernel.org> > > Cc: Nitin Gupta <ngupta@vflare.org> > > Cc: Stephen Rothwell <sfr@canb.auug.org.au> > > Signed-off-by: Andrew Morton <akpm@linux-foundation.org> > > --- > > > > mm/zsmalloc.c | 2 -- > > 1 file changed, 2 deletions(-) > > > > diff -puN mm/zsmalloc.c~zsmalloc-remove-extra-cond_resched-in-__zs_compact mm/zsmalloc.c > > --- a/mm/zsmalloc.c~zsmalloc-remove-extra-cond_resched-in-__zs_compact > > +++ a/mm/zsmalloc.c > > @@ -1717,8 +1717,6 @@ static unsigned long __zs_compact(struct > > struct page *dst_page = NULL; > > unsigned long nr_total_migrated = 0; > > > > - cond_resched(); > > - > > spin_lock(&class->lock); > > while ((src_page = isolate_source_page(class))) { > > > > Hello, > > Minchan, did I miss your NACK on this patch? or could you please ACK it?
I saw this patch yesterday night but didn't acked intentionally because I was not sure and too tired to see the code so I postpone.
If we removed cond_resched out of outer loop(ie, your patch), we lose the chance to reschedule if alloc_target_page fails(ie, there is no zspage in ZS_ALMOST_FULL and ZS_ALMOST_EMPTY). It might be not rare event if we does compation successfully for a size_class. However, with next coming higher size_class for __zs_compact, we will encounter cond_resched during compaction. So, I am happy to ack. :)
Acked-by: Minchan Kim <minchan@kernel.org>
> > -ss
-- Kind regards, Minchan Kim
| |