From: Mel Gorman <mel@csn.ul.ie>
To: Minchan Kim <minchan.kim@gmail.com>
Cc: Simon Kirby <sim@hostway.ca>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Shaohua Li <shaohua.li@intel.com>,
Dave Hansen <dave@linux.vnet.ibm.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm <linux-mm@kvack.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 3/6] mm: kswapd: Use the order that kswapd was reclaiming at for sleeping_prematurely()
Date: Fri, 10 Dec 2010 10:36:42 +0000 [thread overview]
Message-ID: <20101210103642.GK20133@csn.ul.ie> (raw)
In-Reply-To: <AANLkTi=2LYh04DMagfEQ6dtsfrzzLtopPG--BW+SGtpy@mail.gmail.com>
On Fri, Dec 10, 2010 at 10:16:19AM +0900, Minchan Kim wrote:
> On Thu, Dec 9, 2010 at 8:18 PM, Mel Gorman <mel@csn.ul.ie> wrote:
> > Before kswapd goes to sleep, it uses sleeping_prematurely() to check if
> > there was a race pushing a zone below its watermark. If the race
> > happened, it stays awake. However, balance_pgdat() can decide to reclaim
> > at a lower order if it decides that high-order reclaim is not working as
>
> Could you specify "order-0" explicitly instead of "a lower order"?
> It makes more clear to me.
>
Done.
> > expected. This information is not passed back to sleeping_prematurely().
> > The impact is that kswapd remains awake reclaiming pages long after it
> > should have gone to sleep. This patch passes the adjusted order to
> > sleeping_prematurely and uses the same logic as balance_pgdat to decide
> > if it's ok to go to sleep.
> >
> > Signed-off-by: Mel Gorman <mel@csn.ul.ie>
> Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
>
> A comment below.
>
> > ---
> > mm/vmscan.c | 14 ++++++++++----
> > 1 files changed, 10 insertions(+), 4 deletions(-)
> >
> > diff --git a/mm/vmscan.c b/mm/vmscan.c
> > index b4472a1..52e229e 100644
> > --- a/mm/vmscan.c
> > +++ b/mm/vmscan.c
> > @@ -2132,7 +2132,7 @@ static bool pgdat_balanced(pg_data_t *pgdat, unsigned long balanced)
> > }
> >
> > /* is kswapd sleeping prematurely? */
> > -static int sleeping_prematurely(pg_data_t *pgdat, int order, long remaining)
> > +static bool sleeping_prematurely(pg_data_t *pgdat, int order, long remaining)
> > {
> > int i;
> > unsigned long balanced = 0;
> > @@ -2142,7 +2142,7 @@ static int sleeping_prematurely(pg_data_t *pgdat, int order, long remaining)
> > if (remaining)
> > return 1;
> >
> > - /* If after HZ/10, a zone is below the high mark, it's premature */
> > + /* Check the watermark levels */
> > for (i = 0; i < pgdat->nr_zones; i++) {
> > struct zone *zone = pgdat->node_zones + i;
> >
> > @@ -2427,7 +2427,13 @@ out:
> > }
> > }
> >
> > - return sc.nr_reclaimed;
> > + /*
> > + * Return the order we were reclaiming at so sleeping_prematurely()
> > + * makes a decision on the order we were last reclaiming at. However,
> > + * if another caller entered the allocator slow path while kswapd
> > + * was awake, order will remain at the higher level
> > + */
> > + return order;
> > }
>
> Please change return value description of balance_pgdat.
> "Returns the number of pages which were actually freed"
>
Oops, done. Thanks
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
next prev parent reply other threads:[~2010-12-10 10:37 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-09 11:18 [PATCH 0/5] Prevent kswapd dumping excessive amounts of memory in response to high-order allocations V3 Mel Gorman
2010-12-09 11:18 ` [PATCH 1/6] mm: kswapd: Stop high-order balancing when any suitable zone is balanced Mel Gorman
2010-12-09 15:21 ` Minchan Kim
2010-12-10 1:06 ` KAMEZAWA Hiroyuki
2010-12-13 16:54 ` Eric B Munson
2010-12-09 11:18 ` [PATCH 2/6] mm: kswapd: Keep kswapd awake for high-order allocations until a percentage of the node " Mel Gorman
2010-12-09 15:42 ` Minchan Kim
2010-12-10 10:19 ` Mel Gorman
2010-12-10 1:16 ` KAMEZAWA Hiroyuki
2010-12-10 10:25 ` Mel Gorman
2010-12-13 17:00 ` Eric B Munson
2010-12-09 11:18 ` [PATCH 3/6] mm: kswapd: Use the order that kswapd was reclaiming at for sleeping_prematurely() Mel Gorman
2010-12-10 1:16 ` Minchan Kim
2010-12-10 10:36 ` Mel Gorman [this message]
2010-12-10 1:18 ` KAMEZAWA Hiroyuki
2010-12-09 11:18 ` [PATCH 4/6] mm: kswapd: Reset kswapd_max_order and classzone_idx after reading Mel Gorman
2010-12-09 15:59 ` Minchan Kim
2010-12-09 16:03 ` Minchan Kim
2010-12-10 10:42 ` Mel Gorman
2010-12-10 1:19 ` KAMEZAWA Hiroyuki
2010-12-09 11:18 ` [PATCH 5/6] mm: kswapd: Treat zone->all_unreclaimable in sleeping_prematurely similar to balance_pgdat() Mel Gorman
2010-12-10 1:23 ` KAMEZAWA Hiroyuki
2010-12-10 10:55 ` Mel Gorman
2010-12-12 23:58 ` KAMEZAWA Hiroyuki
2010-12-09 11:18 ` [PATCH 6/6] mm: kswapd: Use the classzone idx that kswapd was using for sleeping_prematurely() Mel Gorman
2010-12-10 2:38 ` Minchan Kim
2010-12-09 11:19 ` [PATCH 0/5] Prevent kswapd dumping excessive amounts of memory in response to high-order allocations V3 Mel Gorman
-- strict thread matches above, loose matches on Subject: below --
2010-12-10 15:46 [PATCH 0/6] Prevent kswapd dumping excessive amounts of memory in response to high-order allocations V4 Mel Gorman
2010-12-10 15:46 ` [PATCH 3/6] mm: kswapd: Use the order that kswapd was reclaiming at for sleeping_prematurely() Mel Gorman
2010-12-13 19:38 ` Eric B Munson
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=20101210103642.GK20133@csn.ul.ie \
--to=mel@csn.ul.ie \
--cc=akpm@linux-foundation.org \
--cc=dave@linux.vnet.ibm.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=shaohua.li@intel.com \
--cc=sim@hostway.ca \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox