Re: win2k guest vm won't boot under Fedora 18 KVM

Gleb Natapov
2013-03-11T08:27:22Z

On Mon, Mar 11, 2013 at 09:09:13AM +0100, Stefan Hajnoczi wrote:
> On Sat, Mar 09, 2013 at 12:43:32PM -0700, Earl Marwil wrote:
> > Hi,
> >
> > I'm looking for some guidance on how to get to the root cause of an
> > issue that I am observing with a win2k guest that won't boot under
> > Fedora 18 on one system but will boot on another. A few days ago I
> > posted on the fedora forum:
> >
> > http://forums.fedoraforum.org/showthread.php?t=289401
> >
> > I can repeat the details in this thread if requested. The issue is that,
> > with a fresh build of Fedora 18, updated to the most recent kernel and
> > packages on an external USB ssd, my win2k VM boots on my laptop (Core
> > i73720QM processor) but does not boot on my desktop system (Core i7-870
> > processor).
> >
> > I'm not sure whether this is a kvm issue or a kernel issue. I'll be glad
> > to dig deeper, just let me what information is needed.
>
> Hi Earl,
> >From your forum post:
>
> KVM internal error. Suberror: 1
> emulation failure
> EAX=63700200 EBX=0000e6f5 ECX=0000000f EDX=00000936
> ...
> Code=74 1d b0 37 e6 70 eb 00 e4 71 eb 00 32 e4 c1 c0 04 c0 c8 04 <d5> 0a 3d 13 0
> 0 75 04 b8 7a 15 c3 b8 00 00 c3 55 8b ec 1e 06 56 57 8b 46 04 8e d8 8b 76 06
>
> Here is my guess:
>
> Laptop has a CPU from 2012. Desktop has a CPU from 2009.
>
> Intel added "unrestricted guest" support to VMX. This feature allows
> the CPU to run real mode code in guest mode.
>
> CPUs that do not support "unrestricted guest" (your desktop?) use an
> emulator implemented in software inside the kvm.ko kernel module.
>
> The emulator may be unable to handle the real mode instruction in the
> particular kernel version you are running.
>
> The laptop doesn't hit this issue because it supports "unrestricted
> guest" while the desktop falls back to the emulator inside kvm.ko where
> it hits the bug.
>
> You may find that changing kernel versions on the desktop will make it
> work.
>
> The best would be to compile a vanilla Linux kernel for the desktop
> machine to verify that this issue still happens. If so, please post the
> full "KVM internal error" output to this mailing list and hopefully
> someone can fix the emulator.
>
> Problem with my theory: I haven't figured out how to check which Intel
> CPU models support "unrestricted guest", so I'm not 100% sure this is
> the issue.
>
Your theory is correct. This is the same as [1] which is fixed in 3.9.
Depending on your kernel emulate_invalid_guest_state = 0 may help, or
may make things even worse :(

[1] https://bugzilla.kernel.org/show_bug.cgi?id=50921

--
Gleb.