DragonFly bugs List (threaded) for 2005-02
Re: vnlur_proc lockups under high disk I/O
Matthew Dillon wrote:
Gary, thanks for the cores! They helped me track the problem down.
It turns out to be a fairly simple bug in the kernel. Basically what
is going on here is that the vnode recycler is not allowed to recycle
'internal' directory nodes in the namecache topology. i.e. if the
path A/B/C/D is cached, then the recycler is not allowed to remove A, B,
or C. The recycler checks this condition by checking the vnode's
Unfortunately, it turns out that buffer cache buffers also bump
v_holdcnt, not just the namecache. This was preventing the recycler
from recycling vnodes related to small files (e.g. the 'Root'
and 'Entries' found all over a cvs checkout of src) and causing your
I believe this patch will solve the problem. Please try it out
and report back to the list. Note that I have added some debugging
printfs (which will not be in the final commit).
I've automated the extraction of the archive and it's been running for 2
hours without problems. I've also stressed file creation as much as I
can and all seems well.
It probably doesn't make a difference but after the tests I noticed that
debug.numvnodes > kern.maxvnodes.
Thanks for the quick response.