All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minchan Kim <minchan@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Jaewon Kim <jaewon31.kim@samsung.com>,
	mgorman@suse.de, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, jaewon31.kim@gmail.com
Subject: Re: [PATCH v2] vmscan: fix increasing nr_isolated incurred by putback unevictable pages
Date: Wed, 5 Aug 2015 08:31:08 +0900	[thread overview]
Message-ID: <20150804233108.GA662@bgram> (raw)
In-Reply-To: <20150804150937.ee3b62257e77911a2f41a48e@linux-foundation.org>

Hello,

On Tue, Aug 04, 2015 at 03:09:37PM -0700, Andrew Morton wrote:
> On Tue, 04 Aug 2015 19:40:08 +0900 Jaewon Kim <jaewon31.kim@samsung.com> wrote:
> 
> > reclaim_clean_pages_from_list() assumes that shrink_page_list() returns
> > number of pages removed from the candidate list. But shrink_page_list()
> > puts back mlocked pages without passing it to caller and without
> > counting as nr_reclaimed. This incurrs increasing nr_isolated.
> > To fix this, this patch changes shrink_page_list() to pass unevictable
> > pages back to caller. Caller will take care those pages.
> > 
> > ..
> >
> > --- a/mm/vmscan.c
> > +++ b/mm/vmscan.c
> > @@ -1157,7 +1157,7 @@ cull_mlocked:
> >  		if (PageSwapCache(page))
> >  			try_to_free_swap(page);
> >  		unlock_page(page);
> > -		putback_lru_page(page);
> > +		list_add(&page->lru, &ret_pages);
> >  		continue;
> >  
> >  activate_locked:
> 
> Is this going to cause a whole bunch of mlocked pages to be migrated
> whereas in current kernels they stay where they are?
> 

It fixes two issues.

1. With unevictable page, cma_alloc will be successful.

Exactly speaking, cma_alloc of current kernel will fail due to unevictable pages.

2. fix leaking of NR_ISOLATED counter of vmstat

With it, too_many_isolated works. Otherwise, it could make hang until
the process get SIGKILL.

So, I think it's stable material.

Acked-by: Minchan Kim <minchan@kernel.org>


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Jaewon Kim <jaewon31.kim@samsung.com>,
	mgorman@suse.de, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, jaewon31.kim@gmail.com
Subject: Re: [PATCH v2] vmscan: fix increasing nr_isolated incurred by putback unevictable pages
Date: Wed, 5 Aug 2015 08:31:08 +0900	[thread overview]
Message-ID: <20150804233108.GA662@bgram> (raw)
In-Reply-To: <20150804150937.ee3b62257e77911a2f41a48e@linux-foundation.org>

Hello,

On Tue, Aug 04, 2015 at 03:09:37PM -0700, Andrew Morton wrote:
> On Tue, 04 Aug 2015 19:40:08 +0900 Jaewon Kim <jaewon31.kim@samsung.com> wrote:
> 
> > reclaim_clean_pages_from_list() assumes that shrink_page_list() returns
> > number of pages removed from the candidate list. But shrink_page_list()
> > puts back mlocked pages without passing it to caller and without
> > counting as nr_reclaimed. This incurrs increasing nr_isolated.
> > To fix this, this patch changes shrink_page_list() to pass unevictable
> > pages back to caller. Caller will take care those pages.
> > 
> > ..
> >
> > --- a/mm/vmscan.c
> > +++ b/mm/vmscan.c
> > @@ -1157,7 +1157,7 @@ cull_mlocked:
> >  		if (PageSwapCache(page))
> >  			try_to_free_swap(page);
> >  		unlock_page(page);
> > -		putback_lru_page(page);
> > +		list_add(&page->lru, &ret_pages);
> >  		continue;
> >  
> >  activate_locked:
> 
> Is this going to cause a whole bunch of mlocked pages to be migrated
> whereas in current kernels they stay where they are?
> 

It fixes two issues.

1. With unevictable page, cma_alloc will be successful.

Exactly speaking, cma_alloc of current kernel will fail due to unevictable pages.

2. fix leaking of NR_ISOLATED counter of vmstat

With it, too_many_isolated works. Otherwise, it could make hang until
the process get SIGKILL.

So, I think it's stable material.

Acked-by: Minchan Kim <minchan@kernel.org>



  reply	other threads:[~2015-08-04 23:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-04 10:40 [PATCH v2] vmscan: fix increasing nr_isolated incurred by putback unevictable pages Jaewon Kim
2015-08-04 10:40 ` Jaewon Kim
2015-08-04 22:09 ` Andrew Morton
2015-08-04 22:09   ` Andrew Morton
2015-08-04 23:31   ` Minchan Kim [this message]
2015-08-04 23:31     ` Minchan Kim
2015-08-05  0:52     ` Jaewon Kim
2015-08-05  0:52       ` Jaewon Kim
2015-08-06 12:21       ` Vlastimil Babka
2015-08-06 12:21         ` Vlastimil Babka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150804233108.GA662@bgram \
    --to=minchan@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=jaewon31.kim@gmail.com \
    --cc=jaewon31.kim@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.