don at sandvine.com
Fri Aug 1 12:39:14 PDT 2003
From: The Hermit Hacker [mailto:scrappy at hub.org]
> > One possible solution is to make vnlru more aggressive, so
> > that before giving up, it tries to free pages that have
> > many references etc (which it currently skips).
> > Another option is to have it simply bump the kern.maxvnodes
> > number and wake up the process which called it.
> > Suggestions?
> check out 4.8-STABLE, which Tor.Egge(sp?) made modifications
> to the vnlru
> process that sound exactly what you are proposing ...
Actually that makes the problem worse in an other area, and
doesn't fix this one.
The 'fix' there is to do 10% of the noes on a free operation,
rather than 10 at a time. Now the system will hang up for
longer when its freeing them.
However the root cause is still that it decides there are no
freeable nodes in this case, so vnlru goes back to sleep
having freed none, the caller stays asleep, and anyone else
wanting a vnode goes to sleep too.
More information about the freebsd-stable