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

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

2015-11-13 2:39 GMT-05:00 Jan Beulich <JBeulich@xxxxxxxx>:
>>>> On 12.11.15 at 20:54, <xumengpanda@xxxxxxxxx> wrote:
>> However, the line after that if statement is:
>> smp_send_stop();
>> which is not in the if ( get_apic_id() != boot_cpu_physical_apicid )
>> statement.
>> So P0 may run this code, and from what I read from this
>> smp_send_stop(), it has the following code:
>>     local_irq_disable();
>>     __stop_this_cpu();
>>     disable_IO_APIC();
>>     hpet_disable();
>>     local_irq_enable();
>> I'm guessing at __stop_this_cpu() when it is on P0, P0 will be
>> stopped. That's why P0 will never have the chance to proceed to the
>> rest of logic in the machine_restart(). Therefore, the machine won't
>> restart.
> The code is quite clear in this regard - smp_send_stop() stops all other
> CPUs, but calls only __stop_this_cpu() (not stop_this_cpu()) for itself.
> I.e. execution is at least supposed to make it back to the caller. Also
> please don't forget that this is working for most everyone else, so
> what you're looking for is more likely some oddity on your system, not
> some general issue.

I see. Hmm, maybe it is because of some oddity on my machine, which is
not a commodity machine but assembled from components. :-(

> (Btw - are you doing this on master, which is what I'd expect you to?
> I ask because the sequence of calls you quote above doesn't match
> with what I see on there. I'd really like to avoid hunting a problem
> long fixed.)

Not really. I added several commits after the master and then "buried"
a bug in the scheduler to cause the system crash when I destroy a VM.
Because the rebooting issue only appears when the kernel crashes in
some cases, so I just tried to use the bug to test if xen kernel can
successfully reboot after crash.  I didn't experience kernel crash on

I will come back when I experience the reboot issue on Xen master.
But I still think that Xen should reboot even when the other parts of
Xen (not the reboot logic) has a bug. Maybe I'm wrong?

>> If I move this  smp_send_stop(void) into the if statement, Xen will reboot.
>> Do you think this could be a fix?
> Definitely not.

I see the reason now...
This issue does not happen on another machine of mine. Probably it is
because of the oddity on the assembled machine, as Jan said. :-(

Thank you very much for your help and advice!




Meng Xu
PhD Student in Computer and Information Science
University of Pennsylvania

Xen-devel mailing list



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