Re: [PATCH][RESEND] Print a user-friendly message on failed vmentry

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/01/2010 01:55 PM, Mohammed Gamal wrote:
On Tue, Jun 1, 2010 at 11:59 AM, Avi Kivity<avi@xxxxxxxxxx>  wrote:
On 05/31/2010 10:40 PM, Mohammed Gamal wrote:
This patch address bug report in
https://bugs.launchpad.net/qemu/+bug/530077.

Failed vmentries were handled with handle_unhandled() which prints a
rather
unfriendly message to the user. This patch separates handling vmentry
failures
from unknown exit reasons and prints a friendly message to the user.



+#define VMX_INVALID_GUEST_STATE 0x80000021
+
+static int handle_failed_vmentry(uint64_t reason)
+{
+    fprintf(stderr, "kvm: vm entry failed with error 0x%" PRIx64 "\n\n",
reason);
+
+    /* Perhaps we will need to check if this machine is intel since exit
reason 0x21
+       has a different interpretation on SVM */
+    if (reason == VMX_INVALID_GUEST_STATE) {
+        fprintf(stderr, "If you're runnning a guest on an Intel machine
without\n");
+        fprintf(stderr, "unrestricted mode support, the failure can be
most likely\n");
+        fprintf(stderr, "due to the guest entering an invalid state for
Intel VT.\n");
+        fprintf(stderr, "For example, the guest maybe running in big real
mode\n");
+        fprintf(stderr, "which is not supported on less recent Intel
processors.\n\n");
+        fprintf(stderr, "You may want to try enabling KVM real mode
emulation. To\n");
+        fprintf(stderr, "enable it, you can run the following commands as
root:\n");
+        fprintf(stderr, "# rmmod kvm_intel\n");
+        fprintf(stderr, "# rmmod kvm\n");
+        fprintf(stderr, "# modprobe kvm_intel
emulate_invalid_guest_state=1\n\n");
+        fprintf(stderr, "WARNING: Real mode emulation is still
work-in-progress\n");
+        fprintf(stderr, "and thus it is not always guaranteed to
work.\n\n");
+    }
+
+    return -EINVAL;
+}


It's almost guaranteed to fail, isn't it?  Is there any guest which fails
with emulated_invalid_guest_state=0 but works with e_i_g_s=1?

You're right! Perhaps I should remove the e_i_g_s bit from the
message. What do you think?


Sure.  Better than the current message.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux