Author: neel
Date: Thu May 21 18:29:11 2015
New Revision: 283256
URL: https://svnweb.freebsd.org/changeset/base/283256

Log:
  Add an option "--get-vmcs-exit-inst-length" to display the instruction length
  of the instruction that caused the VM-exit.
  
  MFC after:    1 week

Modified:
  head/usr.sbin/bhyvectl/bhyvectl.c

Modified: head/usr.sbin/bhyvectl/bhyvectl.c
==============================================================================
--- head/usr.sbin/bhyvectl/bhyvectl.c   Thu May 21 18:23:37 2015        
(r283255)
+++ head/usr.sbin/bhyvectl/bhyvectl.c   Thu May 21 18:29:11 2015        
(r283256)
@@ -293,6 +293,7 @@ static int get_guest_pat, get_host_pat;
 static int get_guest_sysenter, get_vmcs_link;
 static int get_exit_reason, get_vmcs_exit_qualification;
 static int get_vmcs_exit_interruption_info, get_vmcs_exit_interruption_error;
+static int get_vmcs_exit_inst_length;
 
 static uint64_t desc_base;
 static uint32_t desc_limit, desc_access;
@@ -1145,7 +1146,15 @@ get_misc_vmcs(struct vmctx *ctx, int vcp
                                vcpu, u64);
                }
        }
-       
+
+       if (!error && (get_vmcs_exit_inst_length || get_all)) {
+               error = vm_get_vmcs_field(ctx, vcpu,
+                   VMCS_EXIT_INSTRUCTION_LENGTH, &u64);
+               if (error == 0)
+                       printf("vmcs_exit_inst_length[%d]\t0x%08x\n", vcpu,
+                           (uint32_t)u64);
+       }
+
        if (!error && (get_vmcs_exit_qualification || get_all)) {
                error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_QUALIFICATION,
                                          &u64);
@@ -1405,6 +1414,8 @@ setup_options(bool cpu_intel)
                                REQ_ARG, 0, SET_VMCS_ENTRY_INTERRUPTION_INFO },
                { "get-vmcs-exit-qualification",
                                NO_ARG, &get_vmcs_exit_qualification, 1 },
+               { "get-vmcs-exit-inst-length",
+                               NO_ARG, &get_vmcs_exit_inst_length, 1 },
                { "get-vmcs-interruptibility",
                                NO_ARG, &get_vmcs_interruptibility, 1 },
                { "get-vmcs-exit-interruption-error",
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to