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? > -- > 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