git: DragonFly_RELEASE_4_6 kernel - Refactor VMX code
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Oct 16 14:49:38 PDT 2016
commit a96bc1e24ee99760608ca520728066a5ef4d3cf1
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/a96bc1e24ee99760608ca520728066a5ef4d3cf1
--
DragonFly BSD source repository
More information about the Commits
mailing list