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