|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [stable-4.11] Heads-up: c719519 (x86/SMP: don't try to stop already stopped CPUs) causes 100% kexec/kdump failure
This is a heads-up as I have observed that the following commit (backported
onto an Amazon 4.11 tree) causes kexec (and hence kdump) to fail.
========
commit c719519a4183d0630121f6abeba420f49dbc3229
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Fri Jul 5 10:32:41 2019 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Fri Jul 5 10:32:41 2019 +0200
x86/SMP: don't try to stop already stopped CPUs
In particular with an enabled IOMMU (but not really limited to this
case), trying to invoke fixup_irqs() after having already done
disable_IO_APIC() -> clear_IO_APIC() is a rather bad idea:
========
The test was performing "echo c > /proc/sysrq-trigger" in dom0 and the loaded
crash kernel fails to show any signs of starting. This is the end of the Xen
console ...
========
(XEN) Hardware Dom0 crashed: rebooting machine in 5 seconds.
(XEN) Resetting with ACPI MEMORY or I/O RESET_REG.
<machine hangs here then reboots via the BIOS after 5 seconds>
========
Expected behaviour is that the kdump kernel immediately loads and then performs
the crash dump
I'm sorry that I have not yet had time to check if this affects vanilla
stable-4.11 or master. I just wanted to be certain that you don't have the same
issue.
Reverting one hunk via the following commit fixes things for me (this is an
experiment and not at all a proposed fix)
========
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -303,15 +303,15 @@ static void stop_this_cpu(void *dummy)
void smp_send_stop(void)
{
unsigned int cpu = smp_processor_id();
+
+ local_irq_disable();
+ fixup_irqs(cpumask_of(cpu), 0);
+ local_irq_enable();
if ( num_online_cpus() > 1 )
{
int timeout = 10;
- local_irq_disable();
- fixup_irqs(cpumask_of(cpu), 0);
- local_irq_enable();
-
smp_call_function(stop_this_cpu, NULL, 0);
/* Wait 10ms for all other CPUs to go offline. */
========
Regards
Rob
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |