[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#613823: linux-image-2.6.32-5-xen-686: Dell Poweredge with xen hypervisor fails to boot



Package: linux-2.6
Version: 2.6.32-30
Severity: important

The kernel version shipped with squeeze fails to boot with our Dell
Poweredge R310 server, when using Xen hypervisor.  The last line
visible is "Scrubbing Free RAM: ...."

As described in this forum post:
http://xen.1045712.n5.nabble.com/xen4-kernel-crash-2-6-32-5-xen-amd64-poweredge-R710-w-s-td3262651.html

This patch fixes the issue:
http://git.kernel.org/?p=linux/kernel/git/jeremy/xen.git;a=commit;h=fa9bb82fe5b971cdbea301b76c9be709c4c34b29

I can verify that making this change fixed the issue for us.  We're
running an i386 kernel on the server, if that matters.  I've copied
the patch here too:

diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 2189432..eed895e 100644 (file)
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -87,6 +87,11 @@ static unsigned long __init xen_release_chunk(phys_addr_t start_addr,
        if (end <= start)
                return 0;
 
+       if (end < PFN_DOWN(ISA_END_ADDRESS))
+               return 0;
+       if (start < PFN_DOWN(ISA_END_ADDRESS))
+               start = PFN_DOWN(ISA_END_ADDRESS);
+
        printk(KERN_INFO "xen_release_chunk: looking at area pfn %lx-%lx: ",
               start, end);
        for(pfn = start; pfn < end; pfn++) {
@@ -159,6 +164,7 @@ char * __init xen_memory_setup(void)
 
        rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap);
        if (rc == -ENOSYS) {
+               BUG_ON(xen_initial_domain());
                memmap.nr_entries = 1;
                map[0].addr = 0ULL;
                map[0].size = mem_end;
@@ -196,9 +202,13 @@ char * __init xen_memory_setup(void)
        }
 
        /*
-        * Even though this is normal, usable memory under Xen, reserve
-        * ISA memory anyway because too many things think they can poke
+        * In domU, the ISA region is normal, usable memory, but we
+        * reserve ISA memory anyway because too many things poke
         * about in there.
+        *
+        * In Dom0, the host E820 information can leave gaps in the
+        * ISA range, which would cause us to release those pages.  To
+        * avoid this, we unconditionally reserve them here.
         */
        e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
                        E820_RESERVED);


-- Package-specific info:
** Kernel log: boot messages should be attached
I can send a video if you want, but I can tell that the patch works.

-- System Information:
Debian Release: 6.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)



Reply to: