All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minchan Kim <minchan.kim@gmail.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	linux-mm <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>, Mel Gorman <mel@csn.ul.ie>,
	Wu Fengguang <fengguang.wu@intel.com>,
	Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 7/7] vmscan: isolated_lru_pages() stop neighbor search if neighbor can't be isolated
Date: Fri, 6 Aug 2010 00:40:45 +0900	[thread overview]
Message-ID: <20100805154045.GE2985@barrios-desktop> (raw)
In-Reply-To: <20100805151525.31CC.A69D9226@jp.fujitsu.com>

On Thu, Aug 05, 2010 at 03:16:06PM +0900, KOSAKI Motohiro wrote:
> isolate_lru_pages() doesn't only isolate LRU tail pages, but also
> isolate neighbor pages of the eviction page.
> 
> Now, the neighbor search don't stop even if neighbors can't be isolated.
> It is silly. successful higher order allocation need full contenious
> memory, even though only one page reclaim failure mean to fail making
> enough contenious memory.
> 
> Then, isolate_lru_pages() should stop to search PFN neighbor pages and
> try to search next page on LRU soon. This patch does it. Also all of
> lumpy reclaim failure account nr_lumpy_failed.
> 
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>

I agree this patch. 
But I have a one question. 

> ---
>  mm/vmscan.c |   24 ++++++++++++++++--------
>  1 files changed, 16 insertions(+), 8 deletions(-)
> 
<snip>

  
>  			if (__isolate_lru_page(cursor_page, mode, file) == 0) {
>  				list_move(&cursor_page->lru, dst);
> @@ -1074,9 +1080,11 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
>  					nr_lumpy_dirty++;
>  				scan++;
>  			} else {
> -				if (mode == ISOLATE_BOTH &&
> -						page_count(cursor_page))
> -					nr_lumpy_failed++;

sc->order = 1;
shrink_inactive_list;
isolate_pages_global with ISOLATE_INACTIVE(I mean no lumpy relcaim mode);
lumpy relcaim in inactive list in isolate_lru_pages;
(But I am not sure we can call it as lumpy reclaim. but at lesat I think 
it a part of lumpy reclaim)
I mean it can reclaim physical pfn order not LRU order in inactive list since
it only consider sc->order.  Is it a intentional?

I guess it's intentional since we care of ISOLATE_BOTH when we increase nr_lumpy_failed. 
If it is, Shouldn't we care of ISOLATE_BOTH still?


> +				/* the page is freed already. */
> +				if (!page_count(cursor_page))
> +					continue;
> +				nr_lumpy_failed++;
> +				break;
>  			}
>  		}
>  	}
> -- 
> 1.6.5.2
> 


-- 
Kind regards,
Minchan Kim

WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan.kim@gmail.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	linux-mm <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>, Mel Gorman <mel@csn.ul.ie>,
	Wu Fengguang <fengguang.wu@intel.com>,
	Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 7/7] vmscan: isolated_lru_pages() stop neighbor search if neighbor can't be isolated
Date: Fri, 6 Aug 2010 00:40:45 +0900	[thread overview]
Message-ID: <20100805154045.GE2985@barrios-desktop> (raw)
In-Reply-To: <20100805151525.31CC.A69D9226@jp.fujitsu.com>

On Thu, Aug 05, 2010 at 03:16:06PM +0900, KOSAKI Motohiro wrote:
> isolate_lru_pages() doesn't only isolate LRU tail pages, but also
> isolate neighbor pages of the eviction page.
> 
> Now, the neighbor search don't stop even if neighbors can't be isolated.
> It is silly. successful higher order allocation need full contenious
> memory, even though only one page reclaim failure mean to fail making
> enough contenious memory.
> 
> Then, isolate_lru_pages() should stop to search PFN neighbor pages and
> try to search next page on LRU soon. This patch does it. Also all of
> lumpy reclaim failure account nr_lumpy_failed.
> 
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>

I agree this patch. 
But I have a one question. 

> ---
>  mm/vmscan.c |   24 ++++++++++++++++--------
>  1 files changed, 16 insertions(+), 8 deletions(-)
> 
<snip>

  
>  			if (__isolate_lru_page(cursor_page, mode, file) == 0) {
>  				list_move(&cursor_page->lru, dst);
> @@ -1074,9 +1080,11 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
>  					nr_lumpy_dirty++;
>  				scan++;
>  			} else {
> -				if (mode == ISOLATE_BOTH &&
> -						page_count(cursor_page))
> -					nr_lumpy_failed++;

sc->order = 1;
shrink_inactive_list;
isolate_pages_global with ISOLATE_INACTIVE(I mean no lumpy relcaim mode);
lumpy relcaim in inactive list in isolate_lru_pages;
(But I am not sure we can call it as lumpy reclaim. but at lesat I think 
it a part of lumpy reclaim)
I mean it can reclaim physical pfn order not LRU order in inactive list since
it only consider sc->order.  Is it a intentional?

I guess it's intentional since we care of ISOLATE_BOTH when we increase nr_lumpy_failed. 
If it is, Shouldn't we care of ISOLATE_BOTH still?


> +				/* the page is freed already. */
> +				if (!page_count(cursor_page))
> +					continue;
> +				nr_lumpy_failed++;
> +				break;
>  			}
>  		}
>  	}
> -- 
> 1.6.5.2
> 


-- 
Kind regards,
Minchan Kim

--
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>

  parent reply	other threads:[~2010-08-05 15:40 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-05  6:11 [RFC][PATCH 0/7] low latency synchrounous lumpy reclaim KOSAKI Motohiro
2010-08-05  6:11 ` KOSAKI Motohiro
2010-08-05  6:12 ` [PATCH 1/7] vmscan: raise the bar to PAGEOUT_IO_SYNC stalls KOSAKI Motohiro
2010-08-05  6:12   ` KOSAKI Motohiro
2010-08-05 15:02   ` Mel Gorman
2010-08-05 15:02     ` Mel Gorman
2010-08-08  6:42     ` KOSAKI Motohiro
2010-08-08  6:42       ` KOSAKI Motohiro
2010-08-05 15:19   ` Rik van Riel
2010-08-05 15:19     ` Rik van Riel
2010-08-05  6:13 ` [PATCH 2/7] vmscan: synchronous lumpy reclaim don't call congestion_wait() KOSAKI Motohiro
2010-08-05  6:13   ` KOSAKI Motohiro
2010-08-05 13:55   ` Minchan Kim
2010-08-05 13:55     ` Minchan Kim
2010-08-05 15:05   ` Rik van Riel
2010-08-05 15:05     ` Rik van Riel
2010-08-05 15:06   ` Mel Gorman
2010-08-05 15:06     ` Mel Gorman
2010-08-05  6:13 ` [PATCH 3/7] vmscan: synchrounous lumpy reclaim use lock_page() instead trylock_page() KOSAKI Motohiro
2010-08-05  6:13   ` KOSAKI Motohiro
2010-08-05 14:17   ` Minchan Kim
2010-08-05 14:17     ` Minchan Kim
2010-08-06  0:52     ` Minchan Kim
2010-08-06  0:52       ` Minchan Kim
2010-08-05 15:12   ` Mel Gorman
2010-08-05 15:12     ` Mel Gorman
2010-08-05 15:26   ` Rik van Riel
2010-08-05 15:26     ` Rik van Riel
2010-08-05  6:14 ` [PATCH 4/7] vmscan: narrowing synchrounous lumply reclaim condition KOSAKI Motohiro
2010-08-05  6:14   ` KOSAKI Motohiro
2010-08-05 14:59   ` Minchan Kim
2010-08-05 14:59     ` Minchan Kim
2010-10-27 16:41   ` Andrea Arcangeli
2010-10-27 16:41     ` Andrea Arcangeli
2010-10-27 17:16     ` Mel Gorman
2010-10-27 17:16       ` Mel Gorman
2010-10-27 18:03       ` Andrea Arcangeli
2010-10-27 18:03         ` Andrea Arcangeli
2010-10-28  8:00         ` KOSAKI Motohiro
2010-10-28  8:00           ` KOSAKI Motohiro
2010-10-28 15:12           ` Andrea Arcangeli
2010-10-28 15:12             ` Andrea Arcangeli
2010-10-29  2:23             ` KOSAKI Motohiro
2010-10-29  2:23               ` KOSAKI Motohiro
2010-10-28 10:20         ` Mel Gorman
2010-10-28 10:20           ` Mel Gorman
2010-11-02  2:04           ` Wu Fengguang
2010-11-02  2:04             ` Wu Fengguang
2010-10-28  2:31     ` Ed Tomlinson
2010-10-28  2:31       ` Ed Tomlinson
2010-10-28 15:22       ` Andrea Arcangeli
2010-10-28 15:22         ` Andrea Arcangeli
2010-08-05  6:14 ` [PATCH 5/7] vmscan: kill dead code in shrink_inactive_list() KOSAKI Motohiro
2010-08-05  6:14   ` KOSAKI Motohiro
2010-08-05 15:08   ` Minchan Kim
2010-08-05 15:08     ` Minchan Kim
2010-08-05 15:14   ` Mel Gorman
2010-08-05 15:14     ` Mel Gorman
2010-08-05  6:15 ` [PATCH 6/7] vmscan: remove PF_SWAPWRITE from __zone_reclaim() KOSAKI Motohiro
2010-08-05  6:15   ` KOSAKI Motohiro
2010-08-05  6:16 ` [PATCH 7/7] vmscan: isolated_lru_pages() stop neighbor search if neighbor can't be isolated KOSAKI Motohiro
2010-08-05  6:16   ` KOSAKI Motohiro
2010-08-05 15:25   ` Mel Gorman
2010-08-05 15:25     ` Mel Gorman
2010-08-05 15:40   ` Minchan Kim [this message]
2010-08-05 15:40     ` Minchan Kim

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=20100805154045.GE2985@barrios-desktop \
    --to=minchan.kim@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=fengguang.wu@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    --cc=riel@redhat.com \
    /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.