看板 DFBSD_bugs 關於我們 聯絡資訊
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 > v_holdcnt. > > 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 > lockup. > > 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). > > -Matt > 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. kern.maxvnodes: 16565 kern.minvnodes: 4141 debug.numvnodes: 16590 debug.freevnodes: 7550 debug.wantfreevnodes: 25 Thanks for the quick response. Regards Gary