[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] [Patch] Reseve memory of domain0 (fix dom0 boot panic)
Hi, Isaku >Why does the region need reservation? >dom0/initrd images are copied by construct_dom0(). >The dom0/initrd regions must not be used before contruct_dom0(), >but they can be used after construct_dom0(). Yes, dom0/inird images are copied by construct_dom0(). But the region is clean up by init_virtual_frametable() before construct_dom0 is called. So the region need reservation. I have the following error message at that time. (XEN) Boot processor id 0x0/0xc418 (XEN) SMP mode deactivated. (XEN) num_online_cpus=1, max_cpus=0 (XEN) Brought up 1 CPUs (XEN) Total of 1 processors activated (0.26 BogoMIPS). (XEN) About to call sort_main_extable() (XEN) Maximum number of domains: 63; 18 RID bits per domain (XEN) About to call domain_create() (XEN) ### domain f0000000041356b8: rid=40000-80000 mp_rid=1000 (XEN) arch_domain_create: domain=f0000000041356b8 (XEN) About to call construct_dom0() (XEN) *** LOADING DOMAIN 0 *** (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) Could not set up DOM0 guest OS (XEN) **************************************** (XEN) (XEN) Reboot in five seconds... (XEN) machine_restart called: spinning.... >The above change is wrong. Please backout or fix somehow. >With P=M model it works but it isn't right. It breaks the P2M/VP patches. >Please see construct_dom0(). I attach a patch which fix the above bug. Am I correct? Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx> diff -r adb151aaf3f8 xen/arch/ia64/xen/dom_fw.c --- a/xen/arch/ia64/xen/dom_fw.c Wed Apr 26 20:55:42 2006 -0600 +++ b/xen/arch/ia64/xen/dom_fw.c Wed May 3 14:29:26 2006 +0900 @@ -1019,7 +1019,8 @@ dom_fw_init (struct domain *d, const cha if (d == dom0) { // XXX CONFIG_XEN_IA64_DOM0_VP // initrd_start address is hard coded in start_kernel() - bp->initrd_start = ia64_boot_param->initrd_start; + bp->initrd_start = (dom0_start+dom0_size) - + (PAGE_ALIGN(ia64_boot_param->initrd_size) + 4*1024*1024); bp->initrd_size = ia64_boot_param->initrd_size; } else { diff -r adb151aaf3f8 xen/arch/ia64/xen/xensetup.c --- a/xen/arch/ia64/xen/xensetup.c Wed Apr 26 20:55:42 2006 -0600 +++ b/xen/arch/ia64/xen/xensetup.c Wed May 3 14:29:26 2006 +0900 @@ -415,8 +415,7 @@ printk("About to call domain_create()\n" printk("About to call construct_dom0()\n"); dom0_memory_start = (unsigned long) __va(initial_images_start); dom0_memory_size = ia64_boot_param->domain_size; - dom0_initrd_start = (unsigned long) __va(initial_images_start + - PAGE_ALIGN(ia64_boot_param->domain_size)); + dom0_initrd_start = (unsigned long) __va(ia64_boot_param->initrd_start); dom0_initrd_size = ia64_boot_param->initrd_size; if ( construct_dom0(dom0, dom0_memory_start, dom0_memory_size, Best Regards, Akio Takebe Attachment:
fix_initrd_start.patch _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |