Messages in this thread | | | Date | Wed, 14 Sep 2005 02:43:13 -0700 | From | Andrew Morton <> | Subject | Re: VM balancing issues on 2.6.13: dentry cache not getting shrunk enough |
| |
Manfred Spraul <manfred@colorfullife.com> wrote: > > One tricky point are directory dentries: As far as I see, they are > pinned and unfreeable if a (freeable) directory entry is in the cache. >
Well. That's the whole problem.
I don't think it's been demonstrated that Ted's problem was caused by internal fragementation, btw. Ted, could you run slabtop, see what the dcache occupancy is? Monitor it as you start to manually apply pressure? If the occupancy falls to 10% and not many slab pages are freed up yet then yup, it's internal fragmentation.
I've found that internal fragmentation due to pinned directory dentries can be very high if you're running silly benchmarks which create some regular-shaped directory tree which can easily create pathological patterns. For real-world things with irregular creation and access patterns and irregular directory sizes the fragmentation isn't as easy to demonstrate.
Another approach would be to do an aging round on a directory's children when an unfreeable dentry is encountered on the LRU. Something like that. If internal fragmentation is indeed the problem. - 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/
| |