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.
Attachment:
signature.asc
Description: This is a digitally signed message part