From: Mel Gorman <mgorman@suse.de>
To: Shaohua Li <shaohua.li@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-mm <linux-mm@kvack.org>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH]vmscan: fix a livelock in kswapd
Date: Tue, 19 Jul 2011 09:39:32 +0100 [thread overview]
Message-ID: <20110719083932.GD5349@suse.de> (raw)
In-Reply-To: <1311059367.15392.299.camel@sli10-conroe>
On Tue, Jul 19, 2011 at 03:09:27PM +0800, Shaohua Li wrote:
> I'm running a workload which triggers a lot of swap in a machine with 4 nodes.
> After I kill the workload, I found a kswapd livelock. Sometimes kswapd3 or
> kswapd2 are keeping running and I can't access filesystem, but most memory is
> free. This looks like a regression since commit 08951e545918c159.
> Node 2 and 3 have only ZONE_NORMAL, but balance_pgdat() will return 0 for
> classzone_idx. The reason is end_zone in balance_pgdat() is 0 by default, if
> all zones have watermark ok, end_zone will keep 0.
> Later sleeping_prematurely() always returns true. Because this is an order 3
> wakeup, and if classzone_idx is 0, both balanced_pages and present_pages
> in pgdat_balanced() are 0.
> We add a special case here. If a zone has no page, we think it's balanced. This
> fixes the livelock.
>
> Signed-off-by: Shaohua Li <shaohua.li@intel.com>
>
Acked-by: Mel Gorman <mgorman@suse.de>
It's also needed for 3.0 and 2.6.39-stable I believe.
--
Mel Gorman
SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mgorman@suse.de>
To: Shaohua Li <shaohua.li@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-mm <linux-mm@kvack.org>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH]vmscan: fix a livelock in kswapd
Date: Tue, 19 Jul 2011 09:39:32 +0100 [thread overview]
Message-ID: <20110719083932.GD5349@suse.de> (raw)
In-Reply-To: <1311059367.15392.299.camel@sli10-conroe>
On Tue, Jul 19, 2011 at 03:09:27PM +0800, Shaohua Li wrote:
> I'm running a workload which triggers a lot of swap in a machine with 4 nodes.
> After I kill the workload, I found a kswapd livelock. Sometimes kswapd3 or
> kswapd2 are keeping running and I can't access filesystem, but most memory is
> free. This looks like a regression since commit 08951e545918c159.
> Node 2 and 3 have only ZONE_NORMAL, but balance_pgdat() will return 0 for
> classzone_idx. The reason is end_zone in balance_pgdat() is 0 by default, if
> all zones have watermark ok, end_zone will keep 0.
> Later sleeping_prematurely() always returns true. Because this is an order 3
> wakeup, and if classzone_idx is 0, both balanced_pages and present_pages
> in pgdat_balanced() are 0.
> We add a special case here. If a zone has no page, we think it's balanced. This
> fixes the livelock.
>
> Signed-off-by: Shaohua Li <shaohua.li@intel.com>
>
Acked-by: Mel Gorman <mgorman@suse.de>
It's also needed for 3.0 and 2.6.39-stable I believe.
--
Mel Gorman
SUSE Labs
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-07-19 8:39 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-19 7:09 [PATCH]vmscan: fix a livelock in kswapd Shaohua Li
2011-07-19 7:09 ` Shaohua Li
2011-07-19 8:39 ` Mel Gorman [this message]
2011-07-19 8:39 ` Mel Gorman
2011-07-19 8:45 ` Minchan Kim
2011-07-19 8:45 ` Minchan Kim
2011-07-19 8:53 ` Shaohua Li
2011-07-19 8:53 ` Shaohua Li
2011-07-19 16:51 ` Minchan Kim
2011-07-19 16:51 ` Minchan Kim
2011-07-20 0:43 ` Shaohua Li
2011-07-20 0:43 ` Shaohua Li
2011-07-20 4:09 ` Minchan Kim
2011-07-20 4:09 ` Minchan Kim
2011-07-20 5:18 ` Shaohua Li
2011-07-20 5:18 ` Shaohua Li
2011-07-20 5:43 ` Minchan Kim
2011-07-20 5:43 ` Minchan Kim
2011-07-20 5:44 ` Minchan Kim
2011-07-20 5:44 ` 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=20110719083932.GD5349@suse.de \
--to=mgorman@suse.de \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=shaohua.li@intel.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.