[Pkg-xen-devel] Bug#684334: xen-hypervisor-4.0-amd64: Does not complete boot of dom0 kernel, extremely slow boot from BIOS RAM map onwards

Andy Smith andy at strugglers.net
Wed Aug 8 19:53:36 UTC 2012


Package: xen-hypervisor-4.0-amd64
Version: 4.0.1-5.2
Severity: important
Tags: patch

I have a system based on a Supermicro X8DTH-i motherboard and a Xeon
E5506 CPU. It was previously running Debian lenny with
xen-hypervisor-3.2-1-amd64 / linux-image-2.6.26-2-xen-amd64 without
incident.

I upgraded it to Debian squeeze, with xen-hypervisor-4.0-amd64 /
linux-image-2.6.32-5-xen-amd64 and now it does not complete a boot of
the dom0 kernel.

I can boot it into a vanilla (or -xen) kernel directly on bare metal and
it seems okay with that.

This was originally reported upstream:
	http://lists.xen.org/archives/html/xen-devel/2012-07/msg01663.html

I have since bisected their hg and found that the following changeset
fixes the problem for me:
	http://xenbits.xen.org/hg/xen-4.0-testing.hg/rev/ab1fb1b8b569?revcount=480

I have attached Keir's changeset as
fix_bind_irq_vector_destination.patch.

Here follows a portion of my dom0 serial console output to the point
where booting becomes incredibly slow, and then the later "increasing
min_delta_ns" spam, just in case that helps someone searching their own
issue. The full logs are available in the xen-devel post linked above.

Thanks,
Andy

(XEN) Dom0 has maximum 4 VCPUs
(XEN) Scrubbing Free RAM: 
........................................................................................................................................................................................................................................done.
(XEN) trace.c:89:d32767 calc_tinfo_first_offset: NR_CPUs 128, offset_in_bytes 
258, t_info_first_offset 65
(XEN) Xen trace buffers: disabled
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) Xen is relinquishing VGA console.
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to 
Xen)
(XEN) Freed 176kB init memory.
mapping kernel into physical memory
Xen: setup ISA identity maps
about to get started...
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.32-5-xen-amd64 (Debian 2.6.32-45) 
(dannf at xxxxxxxxxx) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Sun May 6 
08:57:29 UTC 2012
[    0.000000] Command line: placeholder 
root=UUID=10aafd06-36d7-4181-a343-c542150957e3 ro console=tty0 console=hvc0
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] released 0 pages of unused memory
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  Xen: 0000000000000000 - 0000000000099000 (usable)
[    0.000000]  Xen: 0000000000099000 - 0000000000100000 (reserved)
[    0.000000]  Xen: 0000000000100000 - 0000000040000000 (usable)
[    0.000000]  Xen: 00000000bf78e000 - 00000000bf790000 type 9
[    0.000000]  Xen: 00000000bf790000 - 00000000bf79e000 (ACPI data)
[    0.000000]  Xen: 00000000bf79e000 - 00000000bf7d0000 (ACPI NVS)
[    0.000000]  Xen: 00000000bf7d0000 - 00000000bf7e0000 (reserved)
[    0.000000]  Xen: 00000000bf7ec000 - 00000000c0000000 (reserved)
[    0.000000]  Xen: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  Xen: 00000000fec00000 - 00000000fec01000 (reserved)
[    0.000000]  Xen: 00000000fec8a000 - 00000000fec8b000 (reserved)
[    0.000000]  Xen: 00000000fec9a000 - 00000000fec9b000 (reserved)
[

At this point output stalls and it has appeared to hang, but if I wait a long 
time (minutes) some more output does appear:

[    0.000000]  Xen: 00000000fee00000 - 00000000fee01

I waited tens of minutes and after it gets past the BIOS RAM map bit, booting 
proceeds at a normal speed until..

[  113.636747] 3w-9xxx: scsi0: AEN: INFO (0x04:0x000C): Initialize
started:unit=0, subunit=1.
[10065189777.645584] ------------[ cut here ]------------
[10065189777.645584] ------------[ cut here ]------------
[10065189777.645584] WARNING: at
/build/buildd-linux-2.6_2.6.32-45-amd64-FcX7RM/linux-2.6-2.6.32/debian/build/source_amd64_xen/kernel/time/clockevents.c:112
clockevents_program_event+0x26/0x7e()
[10065189777.645584] Hardware name: X8DTH-i/6/iF/6F
[10065189777.645584] Modules linked in: psmouse serio_raw snd_pcm
snd_timer snd soundcore snd_page_alloc joydev pcspkr evdev i2c_i801
i2c_core ioatdma button processor acpi_processor ext3 jbd mbcache
dm_mod sd_mod crc_t10dif usbhid hid uhci_hcd ehci_hcd 3w_9xxx
usbcore nls_base scsi_mod igb dca thermal thermal_sys [last
unloaded: scsi_wait_scan]
[10065189777.645584] Pid: 0, comm: swapper Not tainted
2.6.32-5-xen-amd64 #1
[10065189777.645584] Call Trace:
[10065189777.645584]  <IRQ>  [<ffffffff81070297>] ?
clockevents_program_event+0x26/0x7e
[10065189777.645584]  [<ffffffff81070297>] ?
clockevents_program_event+0x26/0x7e
[10065189777.645584]  [<ffffffff8104ef90>] ?
warn_slowpath_common+0x77/0xa3
[10065189777.645584]  [<ffffffff81070297>] ?
clockevents_program_event+0x26/0x7e
[10065189777.645584]  [<ffffffff8107131b>] ?
tick_dev_program_event+0x2d/0x95
[10065189777.645584]  [<ffffffff81068942>] ?
hrtimer_interrupt+0x15d/0x18d
[10065189777.645584]  [<ffffffff8100e9af>] ?
xen_timer_interrupt+0x34/0x18d
[10065189777.645584]  [<ffffffffa00a5ae2>] ?
twa_interrupt+0xed/0x5e8 [3w_9xxx]
[10065189777.645584]  [<ffffffff8100dc7b>] ?
drop_other_mm_ref+0x42/0x62
[10065189777.645584]  [<ffffffff81095c44>] ?
handle_IRQ_event+0x58/0x126
[10065189777.645584]  [<ffffffff810973e3>] ?
handle_percpu_irq+0x39/0x6a
[10065189777.645584]  [<ffffffff811f2aea>] ?
__xen_evtchn_do_upcall+0x1d0/0x28d
[10065189777.645584]  [<ffffffff811f334b>] ?
xen_evtchn_do_upcall+0x2e/0x42
[10065189777.645584]  [<ffffffff81012cfe>] ?
xen_do_hypervisor_callback+0x1e/0x30
[10065189777.645584]  <EOI>  [<ffffffff810093aa>] ?
hypercall_page+0x3aa/0x1001
[10065189777.645584]  [<ffffffff810093aa>] ?
hypercall_page+0x3aa/0x1001
[10065189777.645584]  [<ffffffff8100e6b3>] ? xen_safe_halt+0xc/0x15
[10065189777.645584]  [<ffffffff8100bfc7>] ? xen_idle+0x37/0x40
[10065189777.645584]  [<ffffffff81010e97>] ? cpu_idle+0xa2/0xda
[10065189777.645584]  [<ffffffff81531cdd>] ?
start_kernel+0x3dc/0x3e8
[10065189777.645584]  [<ffffffff81533c93>] ?
xen_start_kernel+0x586/0x58a
[10065189777.645584] ---[ end trace 8a7858275426dc3b ]---
[10065189777.645584] CE: xen increasing min_delta_ns to 300000 nsec
[10065189777.645584] CE: xen increasing min_delta_ns to 450000 nsec
[10065189777.645584] CE: xen increasing min_delta_ns to 675000 nsec
[10065189777.645584] CE: xen increasing min_delta_ns to 1012500 nsec

I sat watching this for a few minutes and it showed no sign of
stopping. The machine is also completely unresponsive aside from
printing that to console.

-- System Information:
Debian Release: 6.0.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-xen-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

xen-hypervisor-4.0-amd64 depends on no packages.

Versions of packages xen-hypervisor-4.0-amd64 recommends:
ii  xen-utils-4.0                 4.0.1-5.2  XEN administrative tools

Versions of packages xen-hypervisor-4.0-amd64 suggests:
pn  xen-docs-4.0                  <none>     (no description available)

-- no debconf information
-------------- next part --------------

# HG changeset patch
# User Keir Fraser <keir.fraser at citrix.com>
# Date 1283154997 -3600
# Node ID ab1fb1b8b569ef78ac352a5ff4524d0fae80945a
# Parent  9ff9b57ddddfd3693698ece28ae44542fba6ee0f
Fix bind_irq_vector() destination

The "mask" covered all online cpus in the "domain". It should be used
as destination later, instead of using "domain" directly.

Signed-off-by: Sheng Yang <sheng at linux.intel.com>
xen-unstable: changeset:   3eb5127e4636
xen-unstable: date:        Thu Aug 26 11:16:14 2010 +0100

diff -r 9ff9b57ddddf -r ab1fb1b8b569 xen/arch/x86/irq.c
--- a/xen/arch/x86/irq.c	Mon Aug 30 08:56:07 2010 +0100
+++ b/xen/arch/x86/irq.c	Mon Aug 30 08:56:37 2010 +0100
@@ -90,14 +90,14 @@ static int __bind_irq_vector(int irq, in
     cpus_and(mask, domain, cpu_online_map);
     if (cpus_empty(mask))
         return -EINVAL;
-    if ((cfg->vector == vector) && cpus_equal(cfg->domain, domain))
+    if ((cfg->vector == vector) && cpus_equal(cfg->domain, mask))
         return 0;
     if (cfg->vector != IRQ_VECTOR_UNASSIGNED) 
         return -EBUSY;
     for_each_cpu_mask(cpu, mask)
         per_cpu(vector_irq, cpu)[vector] = irq;
     cfg->vector = vector;
-    cfg->domain = domain;
+    cfg->domain = mask;
     irq_status[irq] = IRQ_USED;
     if (IO_APIC_IRQ(irq))
         irq_vector[irq] = vector;



More information about the Pkg-xen-devel mailing list