git: kernel - Refactor VMX code

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Oct 8 17:05:16 PDT 2016


commit e1bcf4167d8125b9ee3d68eae014e0db25d15ff3
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Oct 8 16:57:16 2016 -0700

    kernel - Refactor VMX code
    
    * Refactor the VMX code to use all three VMM states available to use
      instead of two.  The three states available are:
    
      active and current	(VMPTRLD)
      active not current	(replaced by some other context being VMPTRLD'd)
      inactive not current	(VMCLEAR)
    
      In short, there is no need to VMCLEAR the current context when activating
      another via VMPTRLD, doing so greatly reduces performance.  VMCLEAR is
      only really needed when a context is being destroyed or being moved to
      another cpu.
    
    * Also fixes a few bugs along the way.
    
    * Live loop in vmx_vmrun() when necessary, otherwise we wind up with serious
      problems synchronizing IPIs.  The thread will still be subject to its
      process priority.

Summary of changes:
 sys/kern/sys_vmm.c                           |  23 ++-
 sys/platform/pc64/vmm/svm.c                  |  24 ++-
 sys/platform/pc64/vmm/vmm.c                  |   1 -
 sys/platform/pc64/vmm/vmx.c                  | 213 ++++++++++++++++-----------
 sys/platform/pc64/x86_64/pmap_inval.c        |   2 +-
 sys/platform/vkernel64/platform/pmap.c       |  17 ++-
 sys/platform/vkernel64/platform/pmap_inval.c |   5 +-
 7 files changed, 182 insertions(+), 103 deletions(-)

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


-- 
DragonFly BSD source repository



More information about the Commits mailing list