git: DragonFly_RELEASE_4_6 kernel - Refactor Xinvltlb a little, turn off the idle-thread invltlb opt

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Jul 23 21:00:56 PDT 2016


commit 6cb49c4fc9c5e24c090fd6a1b9abbaadd8d170bc
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Jul 23 19:19:46 2016 -0700

    kernel - Refactor Xinvltlb a little, turn off the idle-thread invltlb opt
    
    * Turn off the idle-thread invltlb optimization.  This feature can be
      turned on with a sysctl (default-off) machdep.optimized_invltlb.  It
      will be turned on by default when we've life-tested that it works
      properly.
    
    * Remove excess critical sections and interrupt disablements.  All entries
      into smp_invlpg() now occur with interrupts already disabled and the
      thread already in a critical section.  This also defers critical-section
      1->0 transition handling away from smp_invlpg() and into its caller.
    
    * Refactor the Xinvltlb APIs a bit.  Have Xinvltlb enter the critical
      section (it didn't before).  Remove the critical section from
      smp_inval_intr().  The critical section is now handled by the assembly,
      and by any other callers.
    
    * Add additional tsc-based loop/counter debugging to try to catch problems.
    
    * Move inner-loop handling of smp_invltlb_mask to act on invltlbs a little
      faster.
    
    * Disable interrupts a little later inside pmap_inval_smp() and
      pmap_inval_smp_cmpset().

Summary of changes:
 sys/platform/pc64/apic/apic_vector.s   |   7 +-
 sys/platform/pc64/include/pmap_inval.h |   2 +-
 sys/platform/pc64/x86_64/machdep.c     |   2 +
 sys/platform/pc64/x86_64/mp_machdep.c  | 124 ++++++++++++++++++++++-----------
 sys/platform/pc64/x86_64/pmap_inval.c  | 104 +++++++++++++++------------
 5 files changed, 152 insertions(+), 87 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/6cb49c4fc9c5e24c090fd6a1b9abbaadd8d170bc


-- 
DragonFly BSD source repository



More information about the Commits mailing list