Environment: ------------ Host OS (ia32/ia32e/IA64):ia32e Guest OS (ia32/ia32e/IA64):ia32e Guest OS Type (Linux/Windows):Windows kvm.git next Commit:e47a5f5fb715b90b40747e9e235de557c6abd56c qemu-kvm Commit:b5803aa3583e82e5133f7621121bc15ee694f4a1 Host Kernel Version:3.10.0-rc1 Hardware: SandyBridge / IvyBridge Bug detailed description: -------------------------- SMP 64bit Windows 2003 can't boot up as a KVM guest. note: 1.win2k8/win7/win8/win2012/rhel6u4 guest can boot up fine 2.UP 64bit win2k3 guest (1 vCPU)can boot up fine. 3.32bit(PAE) win2k3 guest with 2 vCPUs can boot up fine. This should be a kvm kernel bug. kvm next + qemu-kvm = result f722406f + b5803aa3 = good e47a5f5f + b5803aa3 = bad Reproduce steps: ---------------- 1.start up a host with KVM enabled 2. qemu-system-x86_64 -enable-kvm -m 1024 -smp 2 -net none win2k3-x64.img Current result: ---------------- SMP 64bit win2k3 guest boot up fail Expected result: ---------------- SMP 64bit win2k3 guest boot up fine
After bisection, we found the first bad commit is: f1ed0450a5fac7067590317cbf027f566b6ccbca commit f1ed0450a5fac7067590317cbf027f566b6ccbca Author: Jan Kiszka <jan.kiszka@siemens.com> Date: Sun Apr 28 14:00:41 2013 +0200 KVM: x86: Remove support for reporting coalesced APIC IRQs Gleb and Jan are trying to fix it.
The following commit fixed this bug: commit 24f7bb52e952912b6a936ebcdc4e744b03e9e5cf Author: Gleb Natapov <gleb@redhat.com> Date: Mon Jun 24 15:19:15 2013 +0300 KVM: Fix RTC interrupt coalescing tracking This reverts most of the f1ed0450a5fac7067590317cbf027f566b6ccbca. After the commit kvm_apic_set_irq() no longer returns accurate information about interrupt injection status if injection is done into disabled APIC. RTC interrupt coalescing tracking relies on the information to be accurate and cannot recover if it is not. Signed-off-by: Gleb Natapov <gleb@redhat.com>