Messages in this thread | | | Date | Sat, 29 Aug 2009 14:22:18 +0200 | From | Johannes Weiner <> | 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@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/
| |