Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1292222
| From | Petr Mladek <pmladek@suse.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v3 4/4] printk/nmi: Increase the size of NMI buffer and make it configurable |
| Date | 2015-12-15 15:30 +0100 |
| Message-ID | <qFYM2-5hd-25@gated-at.bofh.it> (permalink) |
| References | (2 earlier) <qEtTY-3va-19@gated-at.bofh.it> <qEvj4-4o4-3@gated-at.bofh.it> <qEEPp-2db-29@gated-at.bofh.it> <qEFiq-2CJ-11@gated-at.bofh.it> <qEFs5-2HI-9@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Fri 2015-12-11 15:30:54, Andrew Morton wrote: > On Fri, 11 Dec 2015 23:21:13 +0000 Russell King - ARM Linux <linux@arm.linux.org.uk> wrote: > > > On Fri, Dec 11, 2015 at 02:57:25PM -0800, Andrew Morton wrote: > > > This is a bit messy. NEED_PRINTK_NMI is an added-on hack for one > > > particular arm variant. From the changelog: > > > > > > "One exception is arm where the deferred printing is used for > > > printing backtraces even without NMI. For this purpose, we define > > > NEED_PRINTK_NMI Kconfig flag. The alternative printk_func is > > > explicitly set when IPI_CPU_BACKTRACE is handled." > > > > > > > > > - why does arm needs deferred printing for backtraces? > > > > > > - why is this specific to CONFIG_CPU_V7M? > > > - can this Kconfig logic be cleaned up a bit? > > > > I think this comes purely from this attempt to apply another round of > > cleanups to the nmi backtrace work I did. > > > > As I explained when I did that work, the vast majority of ARM platforms > > are unable to trigger anything like a NMI - the FIQ is something that's > > generally a property of the secure monitor, and is not accessible to > > Linux. However, there are platforms where it is accessible. > > OK, thanks. So "not needed at present, might be needed in the future, > useful for out-of-tree debug code"? It is possible that I got it a wrong way on arm. The NMI buffer is usable there on two locations. First, the temporary is currently used to handle IPI_CPU_BACKTRACE. It seems that it is not a real NMI. But it seems to be available (compiled) on all arm system. This is why I introduced NEED_PRINTK_NMI Kconfig flag to avoid confusion with a real NMI. Second, there is the FIQ "NMI" handler that is called from /arch/arm/kernel/entry-armv.S. It is compiled only if _not_ defined $(CONFIG_CPU_V7M). It calls nmi_enter() and nmi_stop(). It looks like a real NMI handler. This is why I defined HAVE_NMI if (!CPU_V7M). A solution would be to define HAVE_NMI on all Arm systems and get rid of NEED_PRINTK_NMI. If you think that it would cause less confusion... > > there's this effort to apply further cleanups - to me, the changelogs > > don't seem to make that much sense, unless we want to start using > > printk() extensively in NMI functions - using the generic nmi backtrace > > code surely gets us something that works across all architectures... > > Yes, I was scratching my head over that. The patchset takes an nmi-safe > all-cpu-backtrace and generalises that into an nmi-safe printk. That > *sounds* like a good thing to do but yes, some additional justification > would be helpful. What real-world value does this patchset really > bring to real-world users? The patchset brings two big advantages. First, it makes the NMI backtraces safe on all architectures for free. Second, it makes all NMI messages almost[*] safe on all architectures. Note that there already are several messages printed in NMI context. See the mail from Jiri Kosina. They are not easy to avoid. [*] The temporary buffer is limited. We still should keep the number of messages in NMI context at minimum. Best Regards, Petr -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: [PATCH v3 4/4] printk/nmi: Increase the size of NMI buffer and make it configurable Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-12-12 00:30 +0100
Re: [PATCH v3 4/4] printk/nmi: Increase the size of NMI buffer and make it configurable Andrew Morton <akpm@linux-foundation.org> - 2015-12-12 00:40 +0100
Re: [PATCH v3 4/4] printk/nmi: Increase the size of NMI buffer and make it configurable Petr Mladek <pmladek@suse.com> - 2015-12-15 15:30 +0100
Re: [PATCH v3 4/4] printk/nmi: Increase the size of NMI buffer and make it configurable Andrew Morton <akpm@linux-foundation.org> - 2015-12-17 23:40 +0100
Re: [PATCH v3 4/4] printk/nmi: Increase the size of NMI buffer and make it configurable Petr Mladek <pmladek@suse.com> - 2015-12-18 17:20 +0100
Re: [PATCH v3 4/4] printk/nmi: Increase the size of NMI buffer and make it configurable Daniel Thompson <daniel.thompson@linaro.org> - 2015-12-14 11:30 +0100
csiph-web