Re: ZONE_NORMAL exhaustion (dcache slab)

Andrew Morton (akpm@digeo.com)
Tue, 22 Oct 2002 10:05:31 -0700


Rik van Riel wrote:
>
> On Mon, 21 Oct 2002, Andrew Morton wrote:
>
> > He had 3 million dentries and only 100k pages on the LRU,
> > so we should have been reclaiming 60 dentries per scanned
> > page.
> >
> > Conceivably the multiply in shrink_slab() overflowed, where
> > we calculate local variable `delta'. But doubtful.
>
> What if there were no pages left to scan for shrink_caches ?

Historically, this causes an ints-off lockup, but I think we've
fixed all them now ;)

> Could it be possible that for some strange reason the machine
> ended up scanning 0 slab objects ?
>
> 60 * 0 is still 0, after all ;)
>

More by good luck than by good judgement, if there are zero inactive
pages in a zone we come out of shrink_caches with max_scan equal
to SWAP_CLUSTER_MAX*2. So if all of a zone's pages are out in
pagetables/skbuffs/whatever we'll put a lot of pressure on slab.

Which is good. But it'll do that even if the offending zone cannot
contain any slab, which is not so good, but not very serious in
practice. Search for "FIXME"...
-
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/