[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090829122217.GA17448@cmpxchg.org>
Date: Sat, 29 Aug 2009 14:22:18 +0200
From: Johannes Weiner <hannes@...xchg.org>
To: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
Cc: Hugh Dickins <hugh.dickins@...cali.co.uk>,
Andrew Morton <akpm@...ux-foundation.org>,
Rik van Riel <riel@...hat.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
Mel Gorman <mel@....ul.ie>, linux-kernel@...r.kernel.org,
linux-mm@...ck.org
Subject: Re: [PATCH mmotm] vmscan move pgdeactivate modification to shrink_active_list fix
On Sat, Aug 29, 2009 at 07:00:47PM +0900, KOSAKI Motohiro wrote:
> Hi Hugh
>
> 2009/8/29 Hugh Dickins <hugh.dickins@...cali.co.uk>:
> > mmotm 2009-08-27-16-51 lets the OOM killer loose on my loads even
> > quicker than last time: one bug fixed but another bug introduced.
> > vmscan-move-pgdeactivate-modification-to-shrink_active_list.patch
> > forgot to add NR_LRU_BASE to lru index to make zone_page_state index.
> >
> > Signed-off-by: Hugh Dickins <hugh.dickins@...cali.co.uk>
>
> Can I use your test case?
> Currently LRU_BASE is 0. it mean
>
> LRU_BASE == NR_INACTIVE_ANON == 0
> LRU_ACTIVE == NR_ACTIVE_ANON == 1
The zone counters are
NR_FREE_PAGES = 0
NR_INACTIVE_ANON = NR_LRU_BASE = 1
NR_ACTIVE_ANON = 2
...,
and NR_LRU_BASE is the offset of the LRU items within the zone stat
items. You missed this offset, so accounting to LRU_BASE + 0 *
LRU_FILE actually accounts to NR_FREE_PAGES, not to NR_INACTIVE_ANON.
I get the feeling we should make this thing more robust...
Hannes
> Therefore, I doubt there are another issue in current mmotm.
> Can I join your strange oom fixing works?
>
>
> > ---
> >
> > mm/vmscan.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > --- mmotm/mm/vmscan.c 2009-08-28 10:07:57.000000000 +0100
> > +++ linux/mm/vmscan.c 2009-08-28 18:30:33.000000000 +0100
> > @@ -1381,8 +1381,10 @@ static void shrink_active_list(unsigned
> > reclaim_stat->recent_rotated[file] += nr_rotated;
> > __count_vm_events(PGDEACTIVATE, nr_deactivated);
> > __mod_zone_page_state(zone, NR_ISOLATED_ANON + file, -nr_taken);
> > - __mod_zone_page_state(zone, LRU_ACTIVE + file * LRU_FILE, nr_rotated);
> > - __mod_zone_page_state(zone, LRU_BASE + file * LRU_FILE, nr_deactivated);
> > + __mod_zone_page_state(zone, NR_ACTIVE_ANON + file * LRU_FILE,
> > + nr_rotated);
> > + __mod_zone_page_state(zone, NR_INACTIVE_ANON + file * LRU_FILE,
> > + nr_deactivated);
> > spin_unlock_irq(&zone->lru_lock);
> > }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists