Thread (19 messages) 19 messages, 5 authors, 2002-10-24

Re: ZONE_NORMAL exhaustion (dcache slab)

From: Andrew Morton <hidden>
Date: 2002-10-22 16:59:34
Also in: lkml

Rik van Riel wrote:
On Mon, 21 Oct 2002, Andrew Morton wrote:
quoted
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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help