[PATCH] 2 of 3 kdump-ppc64-soft-reset-fixes

David Wilder dwilder at us.ibm.com
Tue Apr 11 08:31:42 EST 2006


- When a system hangs, user will activate the soft-reset to initiate the 
kdump boot. But, soft-reset behavior is indeterminate on sending FWNMI 
to all CPUS. i.e, all CPUs will not get FW NMI at the same time. When 
the first CPU entered (calling primary CPU here onwards) kdump using 
crash_kexec(), sends an IPI to other CPUs. Some CPUs will respond to 
this IPI and execute crash_ipi_callback()  before receive NMI. When they 
receive FW NMI, will execute die() and waiting forever since no more 
kdump IPI coming from the primary CPU. This issue will be fixed by 
invoking crash_kexec_secondary() directly from die().

Since the secondary CPUs will enter the IPI_callback function two times, 
CPU states have to be saved only once and the primary CPU has to start 
kdump boot after all CPUs are stopped. Hence, cpus_in_crash bitmap is 
used to determine whether pt_regs is saved. If the bit is not set, regs 
will be saved. Introduced cpus_in_sr bitmap and enter_on_soft_reset 
counter which are used to let the primary CPU know that all secondary 
CPUs entered via soft-reset and ready to do down.

- For the crash scenario, when a CPU hangs with interrupts disabled and 
the other CPUs panic or user invoked kdump boot using sysrq-c. In this 
case, the hung CPU can not be stopped and causes the kdump boot not 
successful. This case can be treated as complete system hang and asks 
the user to activate soft-reset if all secondary CPUs are not stopped.

Please pick-up this patch. (Note this patch is dependent on 
kdump-image-rm-static.patch, see my earlier posting)

-- 
David Wilder
IBM Linux Technology Center
Beaverton, Oregon, USA 
dwilder at us.ibm.com
(503)578-3789

-------------- next part --------------
A non-text attachment was scrubbed...
Name: kdump-ppc64-soft-reset-fixes.patch
Type: text/x-patch
Size: 10588 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20060410/987d817e/attachment.bin>


More information about the Linuxppc-dev mailing list