On Tue, 2011-08-30 at 10:22 -0400, Konrad Rzeszutek Wilk wrote: [...] > It might make sense to also use 'xen_raw_printk' as sometimes you don't > get to see the panic - you end up with this unhelpfull message: > > (XEN) domain_crash_sync called from entry.S > (XEN) Domain 0 (vcpu#0) crashed on cpu#0: > .. snip.. > > so something like this: > > diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c > index b4533a8..8424dd4 100644 > --- a/arch/x86/xen/smp.c > +++ b/arch/x86/xen/smp.c > @@ -32,6 +32,7 @@ > #include <xen/page.h> > #include <xen/events.h> > > +#include <xen/hvc-console.h> > #include "xen-ops.h" > #include "mmu.h" > > @@ -207,6 +208,15 @@ static void __init xen_smp_prepare_cpus(unsigned int > max_cpus) > unsigned cpu; > unsigned int i; > > + if (skip_ioapic_setup) { > + char *m = (max_cpus == 0) ? > + "The nosmp parameter is incompatible with Xen; " \ > + "use Xen dom0_max_vcpus=1 parameter" : > + "The noapic parameter is incompatible with Xen"; > + > + xen_raw_printk(m); > + panic(m); > + } > xen_init_lock_cpu(0); > > smp_store_cpu_info(0); >
Looking at this again: this problem only really applies to dom0, and the new code won't even build in a domU-only kernel config with CONFIG_X86_IO_APIC unset. I think we actually need something like: #ifdef CONFIG_XEN_DOM0 if (xen_initial_domain() && skip_ioapic_setup) { ... } #endif Ben.
signature.asc
Description: This is a digitally signed message part