summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bhyvectl
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2014-01-01 21:17:08 +0000
committerneel <neel@FreeBSD.org>2014-01-01 21:17:08 +0000
commite2a56f44970180d7c424886cb2e17d77e76e8b98 (patch)
treeb489c0f89e8cab4444f5d2635c829e734f88c162 /usr.sbin/bhyvectl
parent50beff885041a37b080791dd3eb2998f5bf8523c (diff)
downloadFreeBSD-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.c4
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);
OpenPOWER on IntegriCloud