git: kernel - more kmalloc and nlookup performance optimizations

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Dec 5 09:22:31 PST 2016


commit 8edfbc5ea8601645770484df0358fa4799ab68ef
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Dec 5 09:15:44 2016 -0800

    kernel - more kmalloc and nlookup performance optimizations
    
    * Give the pcpu counters in struct malloc_type their own cache line per
      cpu.  This removes a large kmalloc/kfree bottleneck on multi-socket
      systems
    
    * Avoid having to ref, lock, and GETATTR intermediate directory components
      in nlookup() by adding the NCF_WXOK flag.  This flag is set in the ncp
      when the directory permissions are at least 555.  This saves significant
      overhead in all situations, including single-threaded.
    
    Discussed-with: Mateusz Guzik (mjg_)

Summary of changes:
 sys/kern/kern_slaballoc.c | 24 +++++++-------
 sys/kern/vfs_cache.c      | 83 +++++++++++++++++++++++++++++++++++++++++++++++
 sys/kern/vfs_nlookup.c    | 74 +++++++++++++++++++++++++++++++++++-------
 sys/kern/vfs_syscalls.c   |  1 +
 sys/sys/malloc.h          | 12 ++++---
 sys/sys/namecache.h       |  6 +++-
 sys/sys/nlookup.h         |  2 +-
 usr.bin/vmstat/vmstat.c   | 22 ++++++++++---
 8 files changed, 190 insertions(+), 34 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8edfbc5ea8601645770484df0358fa4799ab68ef


-- 
DragonFly BSD source repository



More information about the Commits mailing list