diff options
author | neel <neel@FreeBSD.org> | 2014-01-01 21:17:08 +0000 |
---|---|---|
committer | neel <neel@FreeBSD.org> | 2014-01-01 21:17:08 +0000 |
commit | e2a56f44970180d7c424886cb2e17d77e76e8b98 (patch) | |
tree | b489c0f89e8cab4444f5d2635c829e734f88c162 /usr.sbin/bhyvectl | |
parent | 50beff885041a37b080791dd3eb2998f5bf8523c (diff) | |
download | FreeBSD-src-e2a56f44970180d7c424886cb2e17d77e76e8b98.zip FreeBSD-src-e2a56f44970180d7c424886cb2e17d77e76e8b98.tar.gz |
Restructure the VMX code to enter and exit the guest. In large part this change
hides the setjmp/longjmp semantics of VM enter/exit. vmx_enter_guest() is used
to enter guest context and vmx_exit_guest() is used to transition back into
host context.
Fix a longstanding race where a vcpu interrupt notification might be ignored
if it happens after vmx_inject_interrupts() but before host interrupts are
disabled in vmx_resume/vmx_launch. We now called vmx_inject_interrupts() with
host interrupts disabled to prevent this.
Suggested by: grehan@
Diffstat (limited to 'usr.sbin/bhyvectl')
-rw-r--r-- | usr.sbin/bhyvectl/bhyvectl.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/usr.sbin/bhyvectl/bhyvectl.c b/usr.sbin/bhyvectl/bhyvectl.c index c697492..efb111f 100644 --- a/usr.sbin/bhyvectl/bhyvectl.c +++ b/usr.sbin/bhyvectl/bhyvectl.c @@ -273,11 +273,13 @@ dump_vm_run_exitcode(struct vm_exit *vmexit, int vcpu) break; case VM_EXITCODE_VMX: printf("\treason\t\tVMX\n"); - printf("\terror\t\t%d\n", vmexit->u.vmx.error); + printf("\tstatus\t\t%d\n", vmexit->u.vmx.status); printf("\texit_reason\t0x%08x (%u)\n", vmexit->u.vmx.exit_reason, vmexit->u.vmx.exit_reason); printf("\tqualification\t0x%016lx\n", vmexit->u.vmx.exit_qualification); + printf("\tinst_type\t\t%d\n", vmexit->u.vmx.inst_type); + printf("\tinst_error\t\t%d\n", vmexit->u.vmx.inst_error); break; default: printf("*** unknown vm run exitcode %d\n", vmexit->exitcode); |