From: Mel Gorman <mel@csn.ul.ie>
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>,
Wu Fengguang <fengguang.wu@intel.com>,
Minchan Kim <minchan.kim@gmail.com>,
Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 3/7] vmscan: synchrounous lumpy reclaim use lock_page() instead trylock_page()
Date: Thu, 5 Aug 2010 16:12:37 +0100 [thread overview]
Message-ID: <20100805151237.GG25688@csn.ul.ie> (raw)
In-Reply-To: <20100805151304.31C0.A69D9226@jp.fujitsu.com>
On Thu, Aug 05, 2010 at 03:13:39PM +0900, KOSAKI Motohiro wrote:
> When synchrounous lumpy reclaim, there is no reason to give up to
> reclaim pages even if page is locked. We use lock_page() instead
> trylock_page() in this case.
>
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
The intention of the code looks fine so;
Acked-by: Mel Gorman <mel@csn.ul.ie>
Something like the following might just be easier on the eye but it's a
question of personal taste.
/* Returns true if the page is locked */
static bool lru_lock_page(struct page *page, enum pageout_io sync_writeback)
{
if (likely(sync_writeback == PAGEOUT_IO_ASYNC))
return trylock_page(page);
lock_page(page);
return true;
}
then replace trylock_page() with lru_lock_page(). The naming is vaguely
similar to other helpers like lru_to_page
> ---
> mm/vmscan.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 1cdc3db..833b6ad 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -665,7 +665,9 @@ static unsigned long shrink_page_list(struct list_head *page_list,
> page = lru_to_page(page_list);
> list_del(&page->lru);
>
> - if (!trylock_page(page))
> + if (sync_writeback == PAGEOUT_IO_SYNC)
> + lock_page(page);
> + else if (!trylock_page(page))
> goto keep;
>
> VM_BUG_ON(PageActive(page));
> --
> 1.6.5.2
>
>
>
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mel@csn.ul.ie>
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>,
Wu Fengguang <fengguang.wu@intel.com>,
Minchan Kim <minchan.kim@gmail.com>,
Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 3/7] vmscan: synchrounous lumpy reclaim use lock_page() instead trylock_page()
Date: Thu, 5 Aug 2010 16:12:37 +0100 [thread overview]
Message-ID: <20100805151237.GG25688@csn.ul.ie> (raw)
In-Reply-To: <20100805151304.31C0.A69D9226@jp.fujitsu.com>
On Thu, Aug 05, 2010 at 03:13:39PM +0900, KOSAKI Motohiro wrote:
> When synchrounous lumpy reclaim, there is no reason to give up to
> reclaim pages even if page is locked. We use lock_page() instead
> trylock_page() in this case.
>
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
The intention of the code looks fine so;
Acked-by: Mel Gorman <mel@csn.ul.ie>
Something like the following might just be easier on the eye but it's a
question of personal taste.
/* Returns true if the page is locked */
static bool lru_lock_page(struct page *page, enum pageout_io sync_writeback)
{
if (likely(sync_writeback == PAGEOUT_IO_ASYNC))
return trylock_page(page);
lock_page(page);
return true;
}
then replace trylock_page() with lru_lock_page(). The naming is vaguely
similar to other helpers like lru_to_page
> ---
> mm/vmscan.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 1cdc3db..833b6ad 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -665,7 +665,9 @@ static unsigned long shrink_page_list(struct list_head *page_list,
> page = lru_to_page(page_list);
> list_del(&page->lru);
>
> - if (!trylock_page(page))
> + if (sync_writeback == PAGEOUT_IO_SYNC)
> + lock_page(page);
> + else if (!trylock_page(page))
> goto keep;
>
> VM_BUG_ON(PageActive(page));
> --
> 1.6.5.2
>
>
>
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
--
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>
next prev parent reply other threads:[~2010-08-05 15:12 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 [this message]
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
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=20100805151237.GG25688@csn.ul.ie \
--to=mel@csn.ul.ie \
--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=minchan.kim@gmail.com \
--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.