From: Minchan Kim <minchan.kim@gmail.com>
To: Wu Fengguang <fengguang.wu@intel.com>
Cc: Mel Gorman <mel@csn.ul.ie>,
Andrew Morton <akpm@linux-foundation.org>,
Iram Shahzad <iram.shahzad@jp.fujitsu.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Subject: Re: compaction: trying to understand the code
Date: Tue, 24 Aug 2010 02:14:16 +0900 [thread overview]
Message-ID: <20100823171416.GA2216@barrios-desktop> (raw)
In-Reply-To: <20100822232316.GA339@localhost>
On Mon, Aug 23, 2010 at 07:23:16AM +0800, Wu Fengguang wrote:
> > From: Minchan Kim <minchan.kim@gmail.com>
> > Date: Mon, 23 Aug 2010 00:20:44 +0900
> > Subject: [PATCH] compaction: handle active and inactive fairly in too_many_isolated
> >
> > Iram reported compaction's too_many_isolated loops forever.
> > (http://www.spinics.net/lists/linux-mm/msg08123.html)
> >
> > The meminfo of situation happened was inactive anon is zero.
> > That's because the system has no memory pressure until then.
> > While all anon pages was in active lru, compaction could select
> > active lru as well as inactive lru. That's different things
> > with vmscan's isolated. So we has been two too_many_isolated.
> >
> > While compaction can isolated pages in both active and inactive,
> > current implementation of too_many_isolated only considers inactive.
> > It made Iram's problem.
> >
> > This patch handles active and inactie with fair.
> > That's because we can't expect where from and how many compaction would
> > isolated pages.
> >
> > This patch changes (nr_isolated > nr_inactive) with
> > nr_isolated > (nr_active + nr_inactive) / 2.
>
> The change looks good, thanks. However I'm not sure if it's enough.
>
> I wonder where the >40MB isolated pages come about. inactive_anon
> remains 0 and free remains high over a long time, so it seems there
> are no concurrent direct reclaims at all. Are the pages isolated by
> the compaction process itself?
I think it can't happen without kswapd or direct reclaim.
But I think direct reclaim doesn't happen becuase Iram has no activity on system
at that time. So just geussing following scenario.
1. trigger compaction by proc
2. isolate some pages and then migrate_pages
3. migrate_pages calls cond_resched
4. someone need big page(I am not sure this part)
4. kswapd: shrink anon active list due to inactive_anon_is_low
5. kswapd: isolate_lru_pages for order > 0 (ex, 0.5M page) so 0.5 M * 32 = 16M are isolated
6. kswapd: shrink_zone : shrink anon active list due to inactive_anon_is_low
7. kswapd: isolate_lru_pages for order > 0 (ex, 0.5M page) so 0.5 M * 32 are isolated again.
Does it make sense?
--
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>
next prev parent reply other threads:[~2010-08-23 17:14 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-17 11:08 Iram Shahzad
2010-08-17 11:10 ` Mel Gorman
2010-08-18 8:19 ` Iram Shahzad
2010-08-18 15:41 ` Wu Fengguang
2010-08-19 7:09 ` Iram Shahzad
2010-08-19 7:45 ` Wu Fengguang
2010-08-19 7:46 ` Mel Gorman
2010-08-19 8:08 ` Wu Fengguang
2010-08-19 8:15 ` Mel Gorman
2010-08-19 8:29 ` Wu Fengguang
2010-08-20 5:45 ` Iram Shahzad
2010-08-20 5:50 ` Wu Fengguang
2010-08-20 6:13 ` Iram Shahzad
2010-08-19 16:00 ` Minchan Kim
2010-08-20 5:31 ` Iram Shahzad
2010-08-20 5:34 ` Wu Fengguang
2010-08-20 9:35 ` Mel Gorman
2010-08-20 10:22 ` Minchan Kim
2010-08-22 15:31 ` Minchan Kim
2010-08-22 23:23 ` Wu Fengguang
2010-08-23 1:58 ` Minchan Kim
2010-08-23 3:03 ` Iram Shahzad
2010-08-23 9:10 ` Minchan Kim
2010-08-26 8:51 ` Mel Gorman
2010-08-23 7:18 ` Mel Gorman
2010-08-23 17:14 ` Minchan Kim [this message]
2010-08-24 0:27 ` Wu Fengguang
2010-08-24 5:07 ` Iram Shahzad
2010-08-24 6:52 ` Minchan Kim
2010-08-26 8:05 ` Iram Shahzad
2010-08-23 7:16 ` Mel Gorman
2010-08-23 9:07 ` Minchan Kim
2010-08-20 10:23 ` Wu Fengguang
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=20100823171416.GA2216@barrios-desktop \
--to=minchan.kim@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=fengguang.wu@intel.com \
--cc=iram.shahzad@jp.fujitsu.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
/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