git: kernel - Refactor Xinvltlb (3)

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Jul 16 23:30:21 PDT 2016


commit ccd67bf614ec9cd72ba3afc5d73e88ba8be3bc70
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Jul 16 19:16:02 2016 -0700

    kernel - Refactor Xinvltlb (3)
    
    * Rollup invalidation operations for numerous kernel-related pmap, reducing
      the number of IPIs needed (particularly for buffer cache operations).
    
    * Implement semi-synchronous command execution, where target cpus do not
      need to wait for the originating cpu to execute a command.  This is used
      for the above rollups when the related kernel memory is known to be accessed
      concurrently with the pmap operations.
    
    * Support invalidation of VA ranges.
    
    * Support reduction of target cpu set for semi-synchronous commands, including
      invltlb's, by removing idle cpus from the set when possible.

Summary of changes:
 sys/cpu/x86_64/include/cpufunc.h             |  26 +--
 sys/kern/sys_vmm.c                           |   6 +-
 sys/kern/vfs_bio.c                           |   6 +-
 sys/platform/pc64/include/pmap.h             |   2 -
 sys/platform/pc64/include/pmap_inval.h       |  18 +-
 sys/platform/pc64/x86_64/mp_machdep.c        | 112 +++++--------
 sys/platform/pc64/x86_64/pmap.c              | 177 ++++++++++++--------
 sys/platform/pc64/x86_64/pmap_inval.c        | 240 ++++++++++++++++++++++-----
 sys/platform/vkernel64/platform/pmap.c       |  26 ++-
 sys/platform/vkernel64/platform/pmap_inval.c |  17 +-
 sys/vm/pmap.h                                |   4 +
 sys/vm/vm_contig.c                           |   7 +-
 12 files changed, 427 insertions(+), 214 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/ccd67bf614ec9cd72ba3afc5d73e88ba8be3bc70


-- 
DragonFly BSD source repository



More information about the Commits mailing list