Re: VM balancing issues on 2.6.13: dentry cache not getting shrunk enough

Andrew Morton
2005-09-14T09:43:13Z

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.