[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Question about Xen reboot on panic



>>> On 12.11.15 at 17:57, <xumengpanda@xxxxxxxxx> wrote:
>> After looking into the code, I found the following code in the
>> machine_restart(), which is quite suspicious.
>>
>>     if ( system_state >= SYS_STATE_smp_boot )
>>
>>     {
>>
>>         local_irq_enable();
>>
>>
>>         /* Ensure we are the boot CPU. */
>>
>>         if ( get_apic_id() != boot_cpu_physical_apicid )
> 
> If we are at the boot CPU and the if statement return true
> 
>>
>>         {
>>
>>             /* Send IPI to the boot CPU (logical cpu 0). */
>>
>>             on_selected_cpus(cpumask_of(0), __machine_restart,
>>
>>                              &delay_millisecs, 0);
> 
> we will send an IPI from CPU 0 to CPU to run machine_restart.

The other way around you mean.

>>
>>             for ( ; ; )
>>
>>                 halt();
> 
> and CPU 0 will halt immediately.
> 
> If the IPI arrives later on CPU 0, CPU 0 won't be able to handle it,
> since it has been halted.

It's CPUn that gets halted, not CPU0. This ...

> (XEN) On P0
> As this line suggests, P0 sends P0 an IPI and P0 goes to halt immediately...

... is suspicious: Is boot_cpu_physical_apicid not set correctly?
Or is get_apic_id() returning rubbish?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.