VMM: Manually save/restore certain registers [1/2]
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 8 Nov 2016 22:33:28 +0000 (17:33 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 7 Dec 2016 22:46:48 +0000 (14:46 -0800)
commit9357a4b0e158d307e4da300c0250563de844e3ce
tree74dcf2848db091067c55c524f3a138127f614e28
parente8c055ecf48a0fd5da090ae0e8ed12fb864e7019
VMM: Manually save/restore certain registers [1/2]

Autoload is expensive.  We can do better by manually saving and restoring
registers.  We do it when we finalize the contexts, which will speed up any
kernel-handled VMEXIT.  In the future, if we lazily unload guest_pcores,
we'll also get this benefit.

Additionally, we can look at the MSRs values to see if we can avoid the
write_msr(), which can help a lot, and we can also use the special helper
for accessing kern_gsbase.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/x86/trap64.h
kern/arch/x86/vmm/vmm.c
kern/arch/x86/vmm/vmm.h