[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dragonfly-commits
Subject:    git: DragonFly_RELEASE_6_2 kernel - namecache eviction fixes
From:       Matthew Dillon <dillon () crater ! dragonflybsd ! org>
Date:       2022-06-16 19:08:27
Message-ID: 20220616190827.7430D19A48C0 () crater ! dragonflybsd ! org
[Download RAW message or body]


commit 68dce0827fee87caff11b2b9939aceec9ba9ba1b
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri Jun 10 21:38:37 2022 -0700

    kernel - namecache eviction fixes
    
    * Fix several namecache eviction issues which interfere with nlookup*()
      functions.
    
      There is an optimization where nlookup*() avoids locking intermediate
      ncp's in a path whenever possible on the assumption that the ref on
      the ncp will prevent eviction.  This assumption fails when the machine
      is under a heavy namecache load.
    
      Errors included spurious ENOTCONN and EINVAL error codes from file
      operations.
    
    * Refactor the namecache code to not evict resolved namecache entries
      which have extra refs under normal operation.  This allows nlookup*()
      and other functions to operate semi-lockless for intermediate elements
      in a path.  However, they still obtain a ref which is a cache-unfriendly
      atomic operation.
    
      This fixes numerous weird errors that occur during heavy dsynth bulk
      builds.
    
    * Also fix a bug which evicted too many resolved namecache entries when
      attempting to evict unresolved entries.  This should improve performance
      under heavy namecache loads a bit.

Summary of changes:
 sys/kern/vfs_cache.c   | 411 +++++++++++++++++++++++++++++++++++++++----------
 sys/kern/vfs_nlookup.c |  67 ++++++--
 sys/sys/namecache.h    |   4 +
 3 files changed, 388 insertions(+), 94 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/68dce0827fee87caff11b2b9939aceec9ba9ba1b


-- 
DragonFly BSD source repository
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic