Core2Duo and KVM may not boot Win8 properly on 3.x kernels
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When I start up QEMU w/ KVM 1.7.0 on a Core2Duo machine running a vanilla kernel 3.4.67 or 3.10.12 to run a Windows 8.0 guest, the guest freezes at Windows 8 boot without any error.
When I dump the CPU registers via "info registers", nothing changes, that means the system really stalled. Same happens with QEMU 2.0.0 and QEMU 2.1.0.
It stalls when the Windows logo is displayed and the balled circle starts rotating.
But - when I run the very same guest using Kernel 2.6.32.12 and QEMU 1.7.0 or 2.0.0 on the host side it works on the Core2Duo. Also the system above but just with an i3 or i5 CPU it works fine.
I already disabled networking and USB for the guest and changed the graphics
card - no effect. I assume that some mean bits and bytes have to be set up
properly to get the thing running.
Seems to be related to a kvm/processor incompatibility.
Windows XP runs on all combinations without any issues. Windows 8.1 guests have the same issues as Windows 8.0.
An example command line that does not boot Windows 8 is:
qemu-system-x86_64 -machine pc-i440fx-
enabling the kernel_irqchip, removing the sep, disabling usb, changing the machine type or changing the monitor type (SDL or VNC) has no effect.
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in qemu: | |
status: | Incomplete → Fix Released |
Here the register dump of the stalled Win8 00000 DR1=00000000000 00000 DR2=00000005000 00000 DR3=00000000000 00000 f0ff0 DR7=00000000000 00400 000800 000000 0000 FPR1=0000000000 000000 0000 000000 0000 FPR3=0000000000 000000 0000 000000 0000 FPR5=0000000000 000000 0000 000000 0000 FPR7=0000000000 000000 0000 000000000000000 00000000 XMM01=000000000 000000000000000 00000000 000000000000000 00000000 XMM03=000000000 000000000000000 00000000 000000000000000 00000000 XMM05=000000000 000000000000000 00000000 000000000000000 00000000 XMM07=000000000 000000000000000 00000000
QEMU 2.1.0 monitor - type 'help' for more information
(qemu) info registers
EAX=3e2009e3 EBX=3e2009e3 ECX=80000000 EDX=80000000
ESI=3e2009e3 EDI=8220c108 EBP=81f9b33c ESP=81f9b2f0
EIP=80c98d83 EFL=00010282 [--S----] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0023 00000000 ffffffff 00c0f300 DPL=3 DS [-WA]
CS =0008 00000000 ffffffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00c09300 DPL=0 DS [-WA]
DS =0023 00000000 ffffffff 00c0f300 DPL=3 DS [-WA]
FS =0030 80e65000 00004280 00409300 DPL=0 DS [-WA]
GS =0000 00000000 ffffffff 00000000
LDT=0000 00000000 ffffffff 00000000
TR =0028 80353000 000020ab 00008b00 DPL=0 TSS32-busy
GDT= 80a37000 000003ff
IDT= 80a37400 000007ff
CR0=8001003b CR2=8b206090 CR3=00185000 CR4=000406e9
DR0=00000000000
DR6=00000000fff
EFER=0000000000
FCW=027f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000
FPR2=0000000000
FPR4=0000000000
FPR6=0000000000
XMM00=000000000
XMM02=000000000
XMM04=000000000
XMM06=000000000