From: daniel.thompson@linaro.org (Daniel Thompson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] nmi: create generic NMI backtrace implementation
Date: Tue, 28 Jul 2015 09:29:52 +0100 [thread overview]
Message-ID: <55B73D80.4010901@linaro.org> (raw)
In-Reply-To: <20150725144229.GZ7557@n2100.arm.linux.org.uk>
On 25/07/15 15:42, Russell King - ARM Linux wrote:
> On Thu, Jul 16, 2015 at 10:51:25AM +0100, Daniel Thompson wrote:
>> On 16/07/15 10:37, Russell King - ARM Linux wrote:
>>> That can be implemented in the arch raise() method if needed - most
>>> architectures shouldn't need it as if they are properly raising a NMI
>>> which is, by definition, deliverable with normal IRQs disabled.
>>
>> Agreed. The bug certainly could be fixed in the ARM raise() function.
>>
>> However I'm still curious whether there is any architecture that benefits
>> from forcing the current CPU into an NMI handler? Why doesn't the
>> don't-run-unnecessary-code argument apply here as well?
>
> The benefit is that we get a consistent way of invoking the backtrace,
> since causing the NMI exception gives us a 'struct pt_regs' to work
> with, which we wouldn't otherwise have if we tried to call it "inline".
>
> The NMI backtrace includes dumping the register state of the NMI-
> receiving CPUs, which needs a 'struct pt_regs' and generating a that in
> arch-independent code wouldn't be nice.
Previously I have relied on dump_stack() for this. That should work
everywhere although guess the arch code might display the stack display
differently.
> In any case, if this area needs changing in the generic code, it should
> be done as a separate change so that it can be properly assessed and
> validated on x86.
Do you want me to supply a patch to fix the IRQ issue in the arm
specific code for now?
If we don't fix that then the behaviour of SysRq-L on ARM will change
and the output will no longer include the CPU that executed SysRq-L.
> In the mean time, I will action Thomas' request to put it into my tree
> so that we can get some reasonable linux-next time with it, and hopefully
> have some progress towards FIQ-based backtracing for ARM.
Great!
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Thompson <daniel.thompson@linaro.org>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: linux-arm-kernel@lists.infradead.org, x86@kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] nmi: create generic NMI backtrace implementation
Date: Tue, 28 Jul 2015 09:29:52 +0100 [thread overview]
Message-ID: <55B73D80.4010901@linaro.org> (raw)
In-Reply-To: <20150725144229.GZ7557@n2100.arm.linux.org.uk>
On 25/07/15 15:42, Russell King - ARM Linux wrote:
> On Thu, Jul 16, 2015 at 10:51:25AM +0100, Daniel Thompson wrote:
>> On 16/07/15 10:37, Russell King - ARM Linux wrote:
>>> That can be implemented in the arch raise() method if needed - most
>>> architectures shouldn't need it as if they are properly raising a NMI
>>> which is, by definition, deliverable with normal IRQs disabled.
>>
>> Agreed. The bug certainly could be fixed in the ARM raise() function.
>>
>> However I'm still curious whether there is any architecture that benefits
>> from forcing the current CPU into an NMI handler? Why doesn't the
>> don't-run-unnecessary-code argument apply here as well?
>
> The benefit is that we get a consistent way of invoking the backtrace,
> since causing the NMI exception gives us a 'struct pt_regs' to work
> with, which we wouldn't otherwise have if we tried to call it "inline".
>
> The NMI backtrace includes dumping the register state of the NMI-
> receiving CPUs, which needs a 'struct pt_regs' and generating a that in
> arch-independent code wouldn't be nice.
Previously I have relied on dump_stack() for this. That should work
everywhere although guess the arch code might display the stack display
differently.
> In any case, if this area needs changing in the generic code, it should
> be done as a separate change so that it can be properly assessed and
> validated on x86.
Do you want me to supply a patch to fix the IRQ issue in the arm
specific code for now?
If we don't fix that then the behaviour of SysRq-L on ARM will change
and the output will no longer include the CPU that executed SysRq-L.
> In the mean time, I will action Thomas' request to put it into my tree
> so that we can get some reasonable linux-next time with it, and hopefully
> have some progress towards FIQ-based backtracing for ARM.
Great!
next prev parent reply other threads:[~2015-07-28 8:29 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-15 20:39 [PATCH 0/3] Shared NMI backtracing support for ARM/x86 Russell King - ARM Linux
2015-07-15 20:39 ` Russell King - ARM Linux
2015-07-15 20:39 ` [PATCH 1/3] nmi: create generic NMI backtrace implementation Russell King
2015-07-15 20:39 ` Russell King
2015-07-16 9:11 ` Daniel Thompson
2015-07-16 9:11 ` Daniel Thompson
2015-07-16 9:37 ` Russell King - ARM Linux
2015-07-16 9:37 ` Russell King - ARM Linux
2015-07-16 9:51 ` Daniel Thompson
2015-07-16 9:51 ` Daniel Thompson
2015-07-25 14:42 ` Russell King - ARM Linux
2015-07-25 14:42 ` Russell King - ARM Linux
2015-07-28 8:29 ` Daniel Thompson [this message]
2015-07-28 8:29 ` Daniel Thompson
2015-07-16 11:07 ` Thomas Gleixner
2015-07-16 11:07 ` Thomas Gleixner
2015-07-15 20:39 ` [PATCH 2/3] nmi: x86: convert to generic nmi handler Russell King
2015-07-15 20:39 ` Russell King
2015-07-16 11:07 ` Thomas Gleixner
2015-07-16 11:07 ` Thomas Gleixner
2015-07-15 20:39 ` [PATCH 3/3] ARM: add basic support for on-demand backtrace of other CPUs Russell King
2015-07-15 20:39 ` Russell King
2015-07-16 9:13 ` Daniel Thompson
2015-07-16 9:13 ` Daniel Thompson
2015-07-16 9:39 ` Russell King - ARM Linux
2015-07-16 9:39 ` Russell King - ARM Linux
2015-07-16 9:55 ` [PATCH 0/3] Shared NMI backtracing support for ARM/x86 Daniel Thompson
2015-07-16 9:55 ` Daniel Thompson
2015-07-21 9:34 ` Thomas Gleixner
2015-07-21 9:34 ` Thomas Gleixner
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=55B73D80.4010901@linaro.org \
--to=daniel.thompson@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.