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

[Xen-devel] "Unknown interrupt" on 3.0.2-2 x86_64



Currently dom0 images larger than a few tens of megabytes fail to
boot and wedge xen early with "Unknown interrupt" on the xen console.
Below is the e-mail exchange I had with Keir along with a patch.

-Todd

* Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> [2006-04-15 01:25]:
> > * Todd Clayton <tclayton@xxxxxxx> [2006-04-14 21:02]:
> >
> > So i tracked it down. In arch/x86/x86_64.S for the intial PDE
> > (idle_pg_table_l2) xen only identity maps the the first 64M of ram.
> > Around line 283 in setup.c xen copies DOM0 modules just beyond
> > the heap and quickly faults off the end of this 64M region.
> > Solaris uses fairly large boot archives (86M on my current system).
> > So for now I just changed x86_64.S to identity map the first 1G
> > of ram and solaris dom0 came all the way up.
> > 
> > Other than setup.c knowing the size of this region and failing more
> > gracefully I don't know how you want to fix this? Either bump
> > it up like I did or perhaps something a little more sophisticated?
> 
> Making the area 1GB sounds reasonable. I was worried about
> accidentally providing mappings for areas that aren't RAM and
> shouldn't be mapped cacheable. But those are unlikely to exist below
> 1GB and if they do we can remove those mappings later. It's more
> important to boot with large images.
> 
> So please send a patch.
> 
>  -- Keir
-- 
----
Todd Clayton    todd.clayton@xxxxxxx

# HG changeset patch
# User tclayton@xxxxxxxxxxxxxxxxxxxxx
# Node ID 6494bd0bd79591f836cbf09cbef87495ff08a025
# Parent  c4eead8a925bd047834bf784f02edae33426b913

Increase size of level-2 initial PDE identity map from first 64MB of
physical RAM to first 1GB of physical RAM. This allows x86_64 xen to boot
larger dom0 images. Without this changes large dom0 images fail to
boot with "Unknown interrupt" on xen console and wedge.

Signed-off-by: Todd Clayton <todd.clayton@xxxxxxx>

diff -r c4eead8a925b -r 6494bd0bd795 xen/arch/x86/boot/x86_64.S
--- a/xen/arch/x86/boot/x86_64.S        Sun Apr 16 15:41:31 2006 +0100
+++ b/xen/arch/x86/boot/x86_64.S        Mon Apr 17 15:35:34 2006 -0700
@@ -252,10 +252,10 @@ ENTRY(idle_pg_table_l3)
 ENTRY(idle_pg_table_l3)
         .quad idle_pg_table_l2 - __PAGE_OFFSET + 7
 
-/* Initial PDE -- level-2 page table. Maps first 64MB physical memory. */
+/* Initial PDE -- level-2 page table. Maps first 1GB physical memory. */
         .org 0x4000
 ENTRY(idle_pg_table_l2)
-        .macro identmap from=0, count=32
+        .macro identmap from=0, count=512
         .if \count-1
         identmap "(\from+0)","(\count/2)"
         identmap "(\from+(0x200000*(\count/2)))","(\count/2)"


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.