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

Reply via email to