Re: Possible dcache BUG

From: Marcelo Tosatti
Date: Tue Aug 24 2004 - 15:17:59 EST


On Tue, Aug 24, 2004 at 01:00:27PM -0700, Andrew Morton wrote:
> Marcelo Tosatti <marcelo.tosatti@xxxxxxxxxxxx> wrote:
> >
> > I dont fully understand the all_unreclaimable logic yet.
>
> 1) bk revtool include/linux/mmzone.h
> 2) double-click on declaration of all_unreclaimable
> 3) read changelog ;)

Will do, but my question is still unanswered, why stop IO throttling when all_unreclaimable
is set?

Doesnt make sense to me right now.

OK, will RTFS.

>
> > --- mm/vmscan.c.orig 2004-08-24 16:48:09.467086840 -0300
> > +++ mm/vmscan.c 2004-08-24 16:51:55.304754296 -0300
> > @@ -878,7 +878,8 @@
> > if (zone->prev_priority > sc->priority)
> > zone->prev_priority = sc->priority;
> >
> > - if (zone->all_unreclaimable && sc->priority != DEF_PRIORITY)
> > + if (zone->all_unreclaimable &&
> > + (sc->priority < DEF_PRIORITY && sc->priority > 0))
> > continue; /* Let kswapd poll it */
> >
> > shrink_zone(zone, sc);
> > @@ -1054,7 +1055,8 @@
> > for (i = 0; i <= end_zone; i++) {
> > struct zone *zone = pgdat->node_zones + i;
> >
> > - if (zone->all_unreclaimable && priority != DEF_PRIORITY)
> > + if (zone->all_unreclaimable &&
> > + (priority < DEF_PRIORITY && priority > 0))
> > continue;
> >
> > if (nr_pages == 0) { /* Not software suspend */
>
> Does anyone understand _why_ all_unreclaimable is getting set?
>
> If not, it's too early to be writing patches...

As I wrote down in the first email, kswapd does

if (zone->pages_scanned > zone->present_pages * 2)
zone->all_unreclaimable = 1;

Sure, it makes perfect sense to happen when we can't unreclaim pages
from the zone.

Its not something hard to understand. What is your point?

I suppose your question is not "_why_ all_unreclaimable is getting set?" but
"maybe it should not be getting set?".

Anyway, will RTFS.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/