From: takahiro.akashi@linaro.org (AKASHI Takahiro)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm64:kexec: have own crash_smp_send_stop() for crash dump for nonpanic cores
Date: Fri, 4 Aug 2017 20:43:01 +0900 [thread overview]
Message-ID: <20170804114300.GA22805@linaro.org> (raw)
In-Reply-To: <59844E98.3020507@arm.com>
On Fri, Aug 04, 2017 at 11:38:16AM +0100, James Morse wrote:
> Hi Hoeun,
>
> On 04/08/17 08:02, Hoeun Ryu wrote:
> > Commit 0ee5941 : (x86/panic: replace smp_send_stop() with kdump friendly
> > version in panic path) introduced crash_smp_send_stop() which is a weak
> > function and can be overriden by architecture codes to fix the side effect
> > caused by commit f06e515 : (kernel/panic.c: add "crash_kexec_post_
> > notifiers" option).
>
> If I've understood correctly: if we boot with this option core code doesn't use
> our machine_crash_shutdown(), and instead calls crash_smp_send_stop(), which we
No. Machine_crash_shutdown() is always called, but at that time,
all the cpus other than the crashing cpu have already died in this case.
> don't have, so it uses the default smp_send_stop(), which doesn't save the regs.
>
> Thanks for catching this!
>
>
> Could we rename smp_send_crash_stop() crash_smp_send_stop() and add the
> called-twice logic there? They are similar enough that I'm getting them muddled
> already!
>
Nice.
-Takahiro AKASHI
>
> Thanks,
>
> James
>
>
> > ARM64 architecture uses the weak version function and the problem is that
> > the weak function simply calls smp_send_stop() which makes other CPUs
> > offline and takes away the chance to save crash information for nonpanic
> > CPUs in machine_crash_shutdown() when crash_kexec_post_notifiers kernel
> > option is enabled.
> >
> > Calling smp_send_crash_stop() in the function is useless because all
> > nonpanic CPUs are already offline by smp_send_stop() in this case and
> > smp_send_crash_stop() only works against online CPUs.
> >
> > The result is that /proc/vmcore is not available with the error messages;
> > "Warning: Zero PT_NOTE entries found", "Kdump: vmcore not initialized".
> >
> > crash_smp_send_stop() is implemented for ARM64 architecture to fix this
> > problem and the function (strong symbol version) saves crash information
> > for nonpanic CPUs using smp_send_crash_stop() and machine_crash_shutdown()
> > tries to save crash information for nonpanic CPUs only when
> > crash_kexec_post_notifiers kernel option is disabled.
>
>
WARNING: multiple messages have this Message-ID (diff)
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: James Morse <james.morse@arm.com>
Cc: Hoeun Ryu <hoeun.ryu@gmail.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] arm64:kexec: have own crash_smp_send_stop() for crash dump for nonpanic cores
Date: Fri, 4 Aug 2017 20:43:01 +0900 [thread overview]
Message-ID: <20170804114300.GA22805@linaro.org> (raw)
In-Reply-To: <59844E98.3020507@arm.com>
On Fri, Aug 04, 2017 at 11:38:16AM +0100, James Morse wrote:
> Hi Hoeun,
>
> On 04/08/17 08:02, Hoeun Ryu wrote:
> > Commit 0ee5941 : (x86/panic: replace smp_send_stop() with kdump friendly
> > version in panic path) introduced crash_smp_send_stop() which is a weak
> > function and can be overriden by architecture codes to fix the side effect
> > caused by commit f06e515 : (kernel/panic.c: add "crash_kexec_post_
> > notifiers" option).
>
> If I've understood correctly: if we boot with this option core code doesn't use
> our machine_crash_shutdown(), and instead calls crash_smp_send_stop(), which we
No. Machine_crash_shutdown() is always called, but at that time,
all the cpus other than the crashing cpu have already died in this case.
> don't have, so it uses the default smp_send_stop(), which doesn't save the regs.
>
> Thanks for catching this!
>
>
> Could we rename smp_send_crash_stop() crash_smp_send_stop() and add the
> called-twice logic there? They are similar enough that I'm getting them muddled
> already!
>
Nice.
-Takahiro AKASHI
>
> Thanks,
>
> James
>
>
> > ARM64 architecture uses the weak version function and the problem is that
> > the weak function simply calls smp_send_stop() which makes other CPUs
> > offline and takes away the chance to save crash information for nonpanic
> > CPUs in machine_crash_shutdown() when crash_kexec_post_notifiers kernel
> > option is enabled.
> >
> > Calling smp_send_crash_stop() in the function is useless because all
> > nonpanic CPUs are already offline by smp_send_stop() in this case and
> > smp_send_crash_stop() only works against online CPUs.
> >
> > The result is that /proc/vmcore is not available with the error messages;
> > "Warning: Zero PT_NOTE entries found", "Kdump: vmcore not initialized".
> >
> > crash_smp_send_stop() is implemented for ARM64 architecture to fix this
> > problem and the function (strong symbol version) saves crash information
> > for nonpanic CPUs using smp_send_crash_stop() and machine_crash_shutdown()
> > tries to save crash information for nonpanic CPUs only when
> > crash_kexec_post_notifiers kernel option is disabled.
>
>
next prev parent reply other threads:[~2017-08-04 11:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-04 7:02 [PATCH] arm64:kexec: have own crash_smp_send_stop() for crash dump for nonpanic cores Hoeun Ryu
2017-08-04 7:02 ` Hoeun Ryu
2017-08-04 10:38 ` James Morse
2017-08-04 10:38 ` James Morse
2017-08-04 11:43 ` AKASHI Takahiro [this message]
2017-08-04 11:43 ` AKASHI Takahiro
2017-08-04 13:33 ` Hoeun Ryu
2017-08-04 13:33 ` Hoeun Ryu
2017-08-04 13:31 ` Hoeun Ryu
2017-08-04 13:31 ` Hoeun Ryu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170804114300.GA22805@linaro.org \
--to=takahiro.akashi@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.