• Waiman Long's avatar
    fs/dcache: Track & report number of negative dentries · af0c9af1
    Waiman Long authored
    The current dentry number tracking code doesn't distinguish between
    positive & negative dentries.  It just reports the total number of
    dentries in the LRU lists.
    
    As excessive number of negative dentries can have an impact on system
    performance, it will be wise to track the number of positive and
    negative dentries separately.
    
    This patch adds tracking for the total number of negative dentries in
    the system LRU lists and reports it in the 5th field in the
    /proc/sys/fs/dentry-state file.  The number, however, does not include
    negative dentries that are in flight but not in the LRU yet as well as
    those in the shrinker lists which are on the way out anyway.
    
    The number of positive dentries in the LRU lists can be roughly found by
    subtracting the number of negative dentries from the unused count.
    
    Matthew Wilcox had confirmed that since the introduction of the
    dentry_stat structure in 2.1.60, the dummy array was there, probably for
    future extension.  They were not replacements of pre-existing fields.
    So no sane applications that read the value of /proc/sys/fs/dentry-state
    will do dummy thing if the last 2 fields of the sysctl parameter are not
    zero.  IOW, it will be safe to use one of the dummy array entry for
    negative dentry count.
    Signed-off-by: default avatarWaiman Long <longman@redhat.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    af0c9af1
dcache.c 82.1 KB