Re: dentry_cache using up all my zone normal memory -- also seen on 2.6.14-rc2

Dipankar Sarma
2005-09-22T18:33:19Z

On Thu, Sep 22, 2005 at 09:16:58AM -0600, Christopher Friesen wrote:
> Al Viro wrote:
>
> >Umm... How many RCU callbacks are pending?
>
> According to this we had 4127306 pending rcu callbacks. A few seconds
> later it was down to 0.
>
> Full output is below.
>
> /proc/sys/fs/dentry-state:
> 1611 838 45 0 0 0
>
> pages_with_[29]_dentries: 142355
> dcache_pages total: 142407
> prune_dcache: requested 1 freed 1
> dcache lru list data:
> dentries total: 839
> dentries in_use: 43
> dentries free: 796
> dentries referenced: 839

These two should make it clear that there were only 1611 dentries
in the dcache and 839 in LRU list. Not too many pinned dentries.
So, all the dentries you saw in the slab were dentries out
of dcache but waiting for corresponding RCU grace periods
to happen.

This can happen if a task runs for too long inside the kernel
holding up context switches or usermode code running on that
cpu. The fact that RCU grace period eventually happens
and the dentries are freed means that something intermittently
holds up RCU. Is this 2.6.10 vanilla or does it have other
patches in there ?

Thanks
Dipankar