• Trond Myklebust's avatar
    NFS: Improve heuristic for readdirplus · 230bc98f
    Trond Myklebust authored
    The heuristic for readdirplus is designed to try to detect 'ls -l' and
    similar patterns. It does so by looking for cache hit/miss patterns in
    both the attribute cache and in the dcache of the files in a given
    directory, and then sets a flag for the readdirplus code to interpret.
    
    The problem with this approach is that a single attribute or dcache miss
    can cause the NFS code to force a refresh of the attributes for the
    entire set of files contained in the directory.
    
    To be able to make a more nuanced decision, let's sample the number of
    hits and misses in the set of open directory descriptors. That allows us
    to set thresholds at which we start preferring READDIRPLUS over regular
    READDIR, or at which we start to force a re-read of the remaining
    readdir cache using READDIRPLUS.
    Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
    230bc98f
dir.c 80.9 KB