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