commit a96bc1e24ee99760608ca520728066a5ef4d3cf1
Author: Matthew Dillon <>
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(-)

DragonFly BSD source repository

Reply via email to