On Wed, Jul 31, 2013 at 10:44 PM, Stephen Warren <swarren at wwwdotorg.org> wrote: > On 07/31/2013 05:37 AM, Vijay Kilari wrote: >> On Tue, Jul 30, 2013 at 10:29 PM, Stephen Warren <swarren at wwwdotorg.org> wrote: >>> On 07/30/2013 04:37 AM, Vijay Kilari wrote: >>>> On Fri, Jul 26, 2013 at 10:38 PM, Stephen Warren <swarren at wwwdotorg.org> wrote: >>> ... >>>>> Does a kernel that's used as the crash kernel guarantee: >>>>> >>>>> * Never to re-use the memory that was used by the previous kernel, so >>>>> that the spin loop code/data won't be corrupted, ever, no matter how >>>>> long the crash recovery kernel runs. >>>>> >>>>> * Not use SMP, so there's never a need to re-activate the non-boot CPUs, >>>>> which might not work if they aren't truly disabled but rather just >>>>> running a pin loop? >>>> >>>> From cat /proc/iomem, normal kernel is executed from (0x80xxxxxx) with crash >>>> kernel reserved 64M at 0xa0000000 >>>> >>>> 80000000-bfffffff : System RAM >>>> 80008000-805aeddf : Kernel code >>>> 805e2000-8063e427 : Kernel data >>>> a0000000-a3ffffff : Crash kernel >>>> >>>> crash kernel is loaded to reserved memory location and is executed from there. >>>> I could confirm this from /proc/iomem when crash kernel is running >>>> >>>> a0000000-a3efffff : System RAM >>>> a0008000-a05aeddf : Kernel code >>>> a05e2000-a063e427 : Kernel data >>> >>> OK, but in the crash dump kernel, is 80008000..8063e427 reserved as >>> well, which would guarantee that the spin loop being executed by the >>> non-crash CPUs won't be corrupted? >> >> The crash dump kernel runs from reserved memory area (0xa0000000 - 0xa3effffff). >> So it should not corrupt the memory area of original kernel that was running >> at 0x80000000,where other CPU's are in spin loop. > > What about dynamic allocations? > IMHO, it is the kdump functionality to ensure that it won't corrupt original kernel's dynamic allocations