KVM (82) guest hangs on boot with kernel (2.6.28-4-server)

Bug #320320 reported by Daniel Nurmi
2
Affects Status Importance Assigned to Milestone
kvm (Ubuntu)
Fix Released
Low
Dustin Kirkland 

Bug Description

Binary package hint: kvm

Host: Linux euca32 2.6.28-4-server #11-Ubuntu SMP Fri Jan 16 22:38:58 UTC 2009 x86_64 GNU/Linux
Description: Ubuntu jaunty (development branch)
Release: 9.04
kvm:
  Installed: 1:82+dfsg-0ubuntu1
  Candidate: 1:82+dfsg-0ubuntu1
  Version table:
 *** 1:82+dfsg-0ubuntu1 0
        500 ftp://mirror.mcs.anl.gov jaunty/main Packages
        100 /var/lib/dpkg/status
linux-image-server:
  Installed: 2.6.28.4.4
  Candidate: 2.6.28.4.4
  Version table:
 *** 2.6.28.4.4 0
        500 ftp://mirror.mcs.anl.gov jaunty/main Packages
        100 /var/lib/dpkg/status

Problem:
------------
My packages are up-to-date as of 5:00pm PST on Jan 22/2009 (via apt-get dist-upgrade). When KVM tries to boot the supplied kernel, the guest kernel hangs on "[ 4.520000] ...trying to set up timer as Virtual Wire IRQ...", while the KVM process takes up 100% of the CPU on the guest. I've let it spin for 30 minutes but no progress is made. Information that may be useful: KVM version 79 does not have this problem on the same host using the same guest kernel (uninstall v82, install v79, problem goes away), problem is the same on jaunty desktop with KVM v82 and kernel 2.6.28-4-generic, problem is the same when using kernel supplied by package linux-image-virtual.

Here is the way that I can reproduce the problem:

| kvm -kernel /boot/vmlinuz-2.6.28-4-server -initrd /boot/initrd.img-2.6.28-4-server

Here is the output of the KVM process itself (note that I am on a machine without hardware virtualization support):

| open /dev/kvm: No such file or directory
| Could not initialize KVM, will disable KVM support
| qemu: loading initrd (0x7e1474 bytes) at 0x000000000780e000

Finally, here is the output (console) of the guest:

[ 0.000000] BIOS EBDA/lowmem at: 0009fc00/0009fc00
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 2.6.28-4-server (buildd@crested) (gcc version 4.3.3 20090111 (prerelease) (Ubuntu 4.3.2-2ubuntu11) ) #11-Ubuntu SMP Fri Jan 16 22:38:58 UTC 2009 (Ubuntu 2.6.28-4.11-s\
erver)
[ 0.000000] Command line: console=ttyS0
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] Centaur CentaurHauls
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
[ 0.000000] BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 0000000007ff0000 (usable)
[ 0.000000] BIOS-e820: 0000000007ff0000 - 0000000008000000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000fffbc000 - 0000000100000000 (reserved)
[ 0.000000] DMI 2.4 present.
[ 0.000000] last_pfn = 0x7ff0 max_arch_pfn = 0x3ffffffff
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] WARNING: at /build/buildd/linux-2.6.28/arch/x86/kernel/cpu/mtrr/main.c:1604 mtrr_trim_uncached_memory+0x188/0x3a7()
[ 0.000000] WARNING: strange, CPU MTRRs all blank?
[ 0.000000] Modules linked in:
[ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.28-4-server #11-Ubuntu
[ 0.000000] Call Trace:
[ 0.000000] [<ffffffff8024d7a7>] warn_slowpath+0xb7/0xf0
[ 0.000000] [<ffffffff8067e6b8>] ? _spin_unlock_irqrestore+0x18/0x20
[ 0.000000] [<ffffffff8024e0cd>] ? release_console_sem+0x1dd/0x230
[ 0.000000] [<ffffffff8024e5ac>] ? vprintk+0x19c/0x400
[ 0.000000] [<ffffffff8067c0d0>] ? printk+0x67/0x6f
[ 0.000000] [<ffffffff80220d2f>] ? mtrr_wrmsr+0x2f/0x70
[ 0.000000] [<ffffffff809cf25a>] mtrr_trim_uncached_memory+0x188/0x3a7
[ 0.000000] [<ffffffff809dcb0d>] ? early_iounmap+0x13c/0x1c3
[ 0.000000] [<ffffffff809ca6b8>] setup_arch+0x5ba/0x8f2
[ 0.000000] [<ffffffff80270522>] ? clockevents_register_notifier+0x42/0x60
[ 0.000000] [<ffffffff809c1b33>] start_kernel+0x6e/0x3b2
[ 0.000000] [<ffffffff809c12b4>] x86_64_start_reservations+0x94/0xb9
[ 0.000000] [<ffffffff809c13ee>] x86_64_start_kernel+0xf2/0x101
[ 0.000000] [<ffffffff809c1140>] ? early_idt_handler+0x0/0x72
[ 0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---
[ 0.000000] Scanning 2 areas for low memory corruption
[ 0.000000] modified physical RAM map:
[ 0.000000] modified: 0000000000000000 - 0000000000001000 (usable)
[ 0.000000] modified: 0000000000001000 - 0000000000006000 (reserved)
[ 0.000000] modified: 0000000000006000 - 0000000000008000 (usable)
[ 0.000000] modified: 0000000000008000 - 0000000000010000 (reserved)
[ 0.000000] modified: 0000000000010000 - 0000000000092000 (usable)
[ 0.000000] modified: 000000000009f000 - 00000000000a0000 (reserved)
[ 0.000000] modified: 00000000000e8000 - 0000000000100000 (reserved)
[ 0.000000] modified: 0000000000100000 - 0000000007ff0000 (usable)
[ 0.000000] modified: 0000000007ff0000 - 0000000008000000 (ACPI data)
[ 0.000000] modified: 00000000fffbc000 - 0000000100000000 (reserved)
[ 0.000000] init_memory_mapping: 0000000000000000-0000000007ff0000
[ 0.000000] last_map_addr: 7ff0000 end: 7ff0000
[ 0.000000] RAMDISK: 0780e000 - 07fef474
[ 0.000000] ACPI: RSDP 000FBE10, 0014 (r0 QEMU )
[ 0.000000] ACPI: RSDT 07FF0000, 002C (r1 QEMU QEMURSDT 1 QEMU 1)
[ 0.000000] ACPI: FACP 07FF002C, 0074 (r1 QEMU QEMUFACP 1 QEMU 1)
[ 0.000000] ACPI: DSDT 07FF0100, 24E8 (r1 BXPC BXDSDT 1 INTL 20081204)
[ 0.000000] ACPI: FACS 07FF00C0, 0040
[ 0.000000] ACPI: APIC 07FF25E8, 00E0 (r1 QEMU QEMUAPIC 1 QEMU 1)
[ 0.000000] (6 early reservations) ==> bootmem [0000000000 - 0007ff0000]
[ 0.000000] #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000]
[ 0.000000] #1 [0000006000 - 0000008000] TRAMPOLINE ==> [0000006000 - 0000008000]
[ 0.000000] #2 [0000200000 - 0000b5b3b0] TEXT DATA BSS ==> [0000200000 - 0000b5b3b0]
[ 0.000000] #3 [000780e000 - 0007fef474] RAMDISK ==> [000780e000 - 0007fef474]
[ 0.000000] #4 [000009fc00 - 0000100000] BIOS reserved ==> [000009fc00 - 0000100000]
[ 0.000000] #5 [0000010000 - 0000011000] PGTABLE ==> [0000010000 - 0000011000]
[ 0.000000] found SMP MP-table at [ffff8800000fbcf0] 000fbcf0
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0x00000000 -> 0x00001000
[ 0.000000] DMA32 0x00001000 -> 0x00100000
[ 0.000000] Normal 0x00100000 -> 0x00100000
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[4] active PFN ranges
[ 0.000000] 0: 0x00000000 -> 0x00000001
[ 0.000000] 0: 0x00000006 -> 0x00000008
[ 0.000000] 0: 0x00000010 -> 0x00000092
[ 0.000000] 0: 0x00000100 -> 0x00007ff0
[ 0.000000] ACPI: PM-Timer IO Port: 0xb008
[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x04] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x05] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x06] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x07] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x08] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x09] lapic_id[0x09] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x0a] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x0b] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x0c] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x0d] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x0e] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x0f] disabled)
[ 0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[ 0.000000] IOAPIC[0]: apic_id 1, version 0, address 0xfec00000, GSI 0-23
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] SMP: Allowing 16 CPUs, 15 hotplug CPUs
[ 0.000000] PM: Registered nosave memory: 0000000000001000 - 0000000000006000
[ 0.000000] PM: Registered nosave memory: 0000000000008000 - 0000000000010000
[ 0.000000] PM: Registered nosave memory: 0000000000092000 - 000000000009f000
[ 0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e8000
[ 0.000000] PM: Registered nosave memory: 00000000000e8000 - 0000000000100000
[ 0.000000] Allocating PCI resources starting at 10000000 (gap: 8000000:f7fbc000)
[ 0.000000] PERCPU: Allocating 69632 bytes of per cpu data
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 29684
[ 0.000000] Kernel command line: console=ttyS0
[ 0.000000] Initializing CPU#0
[ 0.000000] PID hash table entries: 512 (order: 9, 4096 bytes)
[ 0.000000] TSC: PIT calibration matches PMTIMER. 2 loops
[ 0.000000] Detected 2211.194 MHz processor.
[ 0.010000] Console: colour VGA+ 80x25
[ 0.010000] console [ttyS0] enabled
[ 0.010000] Dentry cache hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.010000] Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.010000] allocated 1310720 bytes of page_cgroup
[ 0.010000] please try cgroup_disable=memory option if you don't want
[ 0.010000] Scanning for low memory corruption every 60 seconds
[ 0.010000] Checking aperture...
[ 0.010000] No AGP bridge found
[ 0.010000] Memory: 108020k/131008k available (4632k kernel code, 492k absent, 22340k reserved, 2510k data, 528k init)
[ 0.010000] SLUB: Genslabs=12, HWalign=64, Order=0-3, MinObjects=0, CPUs=16, Nodes=1
[ 0.011450] Calibrating delay loop (skipped), value calculated using timer frequency.. 4422.38 BogoMIPS (lpj=22111940)
[ 0.013559] Security Framework initialized
[ 0.015115] SELinux: Disabled at boot.
[ 0.016634] AppArmor: AppArmor initialized
[ 0.017620] Mount-cache hash table entries: 256
[ 0.028218] Initializing cgroup subsys ns
[ 0.028891] Initializing cgroup subsys cpuacct
[ 0.029407] Initializing cgroup subsys memory
[ 0.030191] Initializing cgroup subsys freezer
[ 0.031706] CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
[ 0.032456] CPU: L2 Cache: 512K (64 bytes/line)
[ 0.033716] SMP alternatives: switching to UP code
[ 1.192937] ACPI: Core revision 20080926
[ 1.197166] ACPI: Checking initramfs for custom DSDT
[ 4.514094] Setting APIC routing to flat
[ 4.517473] ..TIMER: vector=0x30 apic1=0 pin1=0 apic2=-1 pin2=-1
[ 4.520000] ..MP-BIOS bug: 8254 timer not connected to IO-APIC
[ 4.520000] ...trying to set up timer (IRQ0) through the 8259A ...
[ 4.520000] ..... (found apic 0 pin 0) ...
[ 4.520000] ....... failed.
[ 4.520000] ...trying to set up timer as Virtual Wire IRQ...

Related branches

Revision history for this message
Dustin Kirkland  (kirkland) wrote : Re: [Bug 320320] [NEW] KVM (82) guest hangs on boot with kernel (2.6.28-4-server)

Did you experience the same problem with the previous version of kvm?

In other words, is this a regression?

:-Dustin

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Sorry, I just found that information in your bug report. I overlooked
it the first time.

:-Dustin

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Okay, I couldn't reproduce that here, on the same jaunty packages,
kernels, and versions. But I do have virt hardware.

I'll try to disable that in my bios and then try. It's possible this
only shows up in qemu mode.

:-Dustin

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Dan-

I can confirm this, now that I have disabled kvm. I'll look into it.

:-Dustin

Changed in kvm:
assignee: nobody → kirkland
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
Dustin Kirkland  (kirkland) wrote :

I just built kvm-83, and it seems to fix this issue. I'll be uploading it shortly, as soon as I test it a little more.

:-Dustin

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Looking at the changelog...
 * http://kvm.qumranet.com/kvmwiki/ChangeLog

I think the key fixes in release 83 is:
 # fix i8254 timer count read (Marcelo Tosatti)
 # properly lock i8354 timer

:-Dustin

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package kvm - 1:83+dfsg-0ubuntu1

---------------
kvm (1:83+dfsg-0ubuntu1) jaunty; urgency=low

  * New upstream release, fixes LP: #320320

 -- Dustin Kirkland <email address hidden> Fri, 23 Jan 2009 09:01:03 -0500

Changed in kvm:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.