Keir, Ian, The local_setup_timer prototype was bad. The call from start secondary() to it was calling with out the CPU parameter. Eventually the CPU parameter received by the local_setup_timer is bogus (big negative number). With such a big cpu number the per_cpu macro was trying to access totally wrong memory location (per cpu data offset for big -ve no cpu) causing the unhandled page fault. Because the dom0 was panicking the error information on the serial console was also not going through, giving just clueless hang. With hyper call based debug statement I could find out what was going wrong in the dom0. Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> diff -r 446aa56ca4fee7d3ea2badfb59e8bb3540b507ae linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c Mon Oct 17 12:50:28 2005 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c Mon Oct 17 18:07:11 2005 @@ -445,7 +445,7 @@ } #ifdef CONFIG_XEN -extern void local_setup_timer(void); +extern void local_setup_timer(unsigned int cpu); #endif /* @@ -478,7 +478,7 @@ enable_APIC_timer(); #else - local_setup_timer(); + local_setup_timer(smp_processor_id()); smp_intr_init(); local_irq_enable(); #endif Thanks & Regards, Nitin ------------------------------------------------------------------------ ----------- Open Source Technology Center, Intel Corp _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel