|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] x86/crash: Indicate how well nmi_shootdown_cpus() managed to do.
On 24/09/2013 20:56, "Andrew Cooper" <andrew.cooper3@xxxxxxxxxx> wrote:
> Having nmi_shootdown_cpus() report which pcpus failed to be shot down is a
> useful debugging hint as to what possibly went wrong (especially when the
> crash logs seem to indicate that an NMI timeout occurred while waiting for one
> of the problematic pcpus to perform an action).
>
> This is achieved by swapping an atomic_t count of unreported pcpus with a
> cpumask. In the case that the 1 second timeout occurs, use the cpumask to
> identify the problematic pcpus.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> CC: Keir Fraser <keir@xxxxxxx>
> CC: Jan Beulich <JBeulich@xxxxxxxx>
> CC: Tim Deegan <tim@xxxxxxx>
>
> ---
>
> @@ -162,12 +164,22 @@ static void nmi_shootdown_cpus(void)
> smp_send_nmi_allbutself();
>
> msecs = 1000; /* Wait at most a second for the other cpus to stop */
> - while ( (atomic_read(&waiting_for_crash_ipi) > 0) && msecs )
> + while ( (cpumask_weight(&waiting_to_crash) > 0) && msecs )
> {
> mdelay(1);
> msecs--;
> }
>
> + /* Leave a hint of how well we did trying to shoot down the other cpus */
> + if ( msecs )
if (cpumask_empty(&waiting_to_crash))
Would be more obvious I think.
Apart from that
Acked-by: Keir Fraser <keir@xxxxxxx>
> + printk("Shot down all cpus\n");
> + else
> + {
> + cpulist_scnprintf(keyhandler_scratch, sizeof keyhandler_scratch,
> + &waiting_to_crash);
> + printk("Failed to shoot down cpus {%s}\n", keyhandler_scratch);
> + }
> +
> /* Crash shutdown any IOMMU functionality as the crashdump kernel is not
> * happy when booting if interrupt/dma remapping is still enabled */
> iommu_crash_shutdown();
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |