From: Andrew Morton <akpm@linux-foundation.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Dave Young <hidave.darkstar@gmail.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH v3] printk: add halt_delay parameter for printk delay in halt phase
Date: Mon, 8 Jun 2009 09:26:07 -0700 [thread overview]
Message-ID: <20090608092607.8b331bf0.akpm@linux-foundation.org> (raw)
In-Reply-To: <20090608084807.GE6372@elte.hu>
On Mon, 8 Jun 2009 10:48:07 +0200 Ingo Molnar <mingo@elte.hu> wrote:
>
> * Dave Young <hidave.darkstar@gmail.com> wrote:
>
> > On Mon, Jun 8, 2009 at 4:28 PM, Andrew Morton<akpm@linux-foundation.org> wrote:
> > > On Mon, 8 Jun 2009 10:14:39 +0200 Ingo Molnar <mingo@elte.hu> wrote:
> > >
> > >>
> > >> * Dave Young <hidave.darkstar@gmail.com> wrote:
> > >>
> > >> > Add a halt_delay module parameter in printk.c used to read the
> > >> > printk messages in halt/poweroff/restart phase, delay each printk
> > >> > messages by halt_delay milliseconds. It is useful for debugging if
> > >> > there's no other way to dump kernel messages that time.
> > >> >
> > >> > The halt_delay max value is 65535, default value is 0, change it
> > >> > by:
> > >> >
> > >> > echo xxx > /sys/module/printk/parameters/halt_delay
> > >> >
> > >> > Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
> > >> > ---
> > >> > Documentation/kernel-parameters.txt | __ __5 +++++
> > >> > kernel/printk.c __ __ __ __ __ __ __ __ __ __ | __ 17 +++++++++++++++++
> > >> > 2 files changed, 22 insertions(+)
> > >> >
> > >> > --- linux-2.6.orig/kernel/printk.c __2009-06-08 13:55:35.000000000 +0800
> > >> > +++ linux-2.6/kernel/printk.c __ __ __ 2009-06-08 13:56:23.000000000 +0800
> > >> > @@ -250,6 +250,22 @@ static inline void boot_delay_msec(void)
> > >> > __}
> > >> > __#endif
> > >> >
> > >> > +/* msecs delay after each halt/poweroff/restart phase printk,
> > >> > + unsigned short is enough for delay in milliseconds */
> > >> > +static unsigned short halt_delay;
> > >> > +
> > >> > +static inline void halt_delay_msec(void)
> > >> > +{
> > >> > + __ if (unlikely(halt_delay == 0 || !(system_state == SYSTEM_HALT
> > >> > + __ __ __ __ __ __ __ __ __ __ __ __ __ || system_state == SYSTEM_POWER_OFF
> > >> > + __ __ __ __ __ __ __ __ __ __ __ __ __ || system_state == SYSTEM_RESTART)))
> > >> > + __ __ __ __ __ return;
> > >>
> > >> This is a tiny bit ugly (and goes into the vprintf path) but i can
> > >> see no other way either - a system_state > SYSTEM_RUNNING check
> > >> would needlessly include the suspend-to-disk state (which we dont
> > >> want to include here).
> > >>
> > >> In theory we could turn system_state into a bitmask and have a
> > >> print_delay_mask check instead of these flags ... but that is a far
> > >> wider change and i'm not sure it's a net step forwards.
> > >>
> > >> I've applied your patch to tip:core/printk with small edits to the
> > >> changelog - Linus & Andrew is Cc:ed, should they have any
> > >> objections.
> > >
> > > Could we not put just a single delay in there, immediately prior to halting,
> > > restarting or poweroffing?
> >
> > But, then prink messages will still flush too fast for us to see
> > the detail.
Only if there are so many unlogged messages that they scroll of the
screen. Is that the case?
> Plus often there's a loop in architecture code that tries various
> methods of reboot. We dont know which one works - and any of them
> could produce warning messages. (and this happened a number of times
> in the past)
>
> So this would mean having to find up to a hundred of 'reboot now'
> places in a two dozen architectures (and keeping them all maintained
> ongoing as well). Does not seem like a good choice to me.
>
hm. If we need to actually capture all of those.
questions: is it possible for interrupts to be disabled at this time?
If so, can we get an NMI watchdog hit?
Is the softlockup detector still running and if so, can it trigger?
next prev parent reply other threads:[~2009-06-08 16:31 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-08 7:40 [PATCH v3] printk: add halt_delay parameter for printk delay in halt phase Dave Young
2009-06-08 8:12 ` [tip:core/printk] printk: Add halt_delay=<msecs> " tip-bot for Dave Young
2009-06-08 8:14 ` [PATCH v3] printk: add halt_delay " Ingo Molnar
2009-06-08 8:28 ` Andrew Morton
2009-06-08 8:42 ` Dave Young
2009-06-08 8:48 ` Ingo Molnar
2009-06-08 16:26 ` Andrew Morton [this message]
2009-06-08 17:15 ` Ingo Molnar
2009-06-08 21:39 ` Andrew Morton
2009-06-08 22:02 ` Ingo Molnar
2009-06-08 22:07 ` Andrew Morton
2009-06-08 22:12 ` Ingo Molnar
2009-06-09 1:01 ` Dave Young
2009-06-09 1:35 ` Dave Young
2009-06-09 2:33 ` Andrew Morton
2009-06-09 0:48 ` Dave Young
2009-06-08 8:37 ` Dave Young
2009-06-08 8:46 ` Ingo Molnar
2009-06-08 8:56 ` Dave Young
2009-06-08 8:58 ` Ingo Molnar
2009-06-08 9:00 ` Dave Young
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=20090608092607.8b331bf0.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=hidave.darkstar@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox