lkml.org 
[lkml]   [2009]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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@tiscali.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@tiscali.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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2009-08-29 14:25    [W:0.102 / U:0.144 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site