mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: John Ogness <john.ogness@linutronix.de>
Cc: Breno Leitao <leitao@debian.org>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Sergey Senozhatsky <senozhatsky@chromium.org>,
	Rio <rioo.tsukatsukii@gmail.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH v1] panic: Flush unsafe consoles before panic reboot
Date: Tue, 3 Nov 2026 14:31:29 +0100	[thread overview]
Message-ID: <auniMWhvteH8C3E0@pathway.suse.cz> (raw)
In-Reply-To: <87v76e3mcc.fsf@jogness.linutronix.de>

On Mon 2026-11-02 23:28:27, John Ogness wrote:
> On 2026-11-02, Petr Mladek <pmladek@suse.com> wrote:
> > I have a crazy idea and do this:
> >
> > --- a/kernel/printk/nbcon.c
> > +++ b/kernel/printk/nbcon.c
> > @@ -1688,7 +1688,20 @@ static void __nbcon_atomic_flush_pending(u64 stop_seq)
> >   */
> >  void nbcon_atomic_flush_pending(void)
> >  {
> > -	__nbcon_atomic_flush_pending(prb_next_reserve_seq(prb));
> > +	u64 stop_seq = prb_next_reserve_seq(prb);
> > +
> > +	__nbcon_atomic_flush_pending(stop_seq, false);
> > +
> > +	/*
> > +	 * This is a compromise. Otherwise, NBCON consoles would never
> > +	 * have a chance to show messages in the panic paths where
> > +	 * the unsafe flush is not explicitely called.
> > +	 */
> > +	if (panic_on_this_cpu() && oops_in_progress) {
> > +		panic_nbcon_allow_unsafe_takeover = true;
> > +		__nbcon_atomic_flush_pending(stop_seq, true);
> > +		panic_nbcon_allow_unsafe_takeover = false;
> > +	}
> >  }
> >
> > It would allow to flush the messages directly by printk().
> >
> > I know that it would be a step back in the reliability. But showing
> > the messages looks more important to me than a reliable reboot.
> > And we could make it configurable when needed.
> >
> > Also we could add more checks. For example, do the unsafe flush only
> > when "num_online_cpus == 1" or so.
> 
> I can accept this, since legacy-netconsole had these risks anyway. My
> only concern is when we add an interface for the unsafe flushing policy,
> will we continue to have unsafe flushing be the default for netconsole?
> I guess we would need to keep it the same to avoid regressions (just as
> we need to have it on by default now).

Good point. I think that this basically goes down to the question
whether we would later introduce an option:

   --panic-focus-on-debug   or   --panic-focus-on-reboot

The current state is somewhere in the middle. I would say
that:

  + the legacy consoles are more focusing on the debugging side
    because bust_spinlocks() is called early. And
    console_flush_on_panic() is called before emergency_restart().

  + the nbcon console are more focusing on safe reboot because
    nbcon_atomic_flush_unsafe() is called only when followed
    by an infinite diod blinking.


It looked like the nbcon handling was good enough before
we added netconsole with an unsafe write_atomic. And maybe
even before converting the widely used uart 8250 serial
console driver.

People started complaining about missing messages with
the converted netconsole and uart 8250 drivers. The current
nbcon handling looks like a regression to these people.

My take would be to modify the nbcon handling to be more
like the legacy one and focus more on debugging. If anyone
gets concerned by the reboot reliability then we
could add the --panic-focus-on-reboot and make
the reboot more safe in this case.

How does that sound, please?

Best Regards,
Petr

  reply	other threads:[~2026-11-03 13:31 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-15 10:01 Ryan Roberts
2026-09-15 10:06 ` Ryan Roberts
2026-09-15 18:49   ` Bradley Morgan
2026-09-16  7:44     ` Ryan Roberts
2026-09-16 14:58       ` Bradley Morgan
2026-09-16 13:08 ` Petr Mladek
2026-10-22 20:35   ` Gustavo Luiz Duarte
2026-10-23  7:57   ` John Ogness
2026-10-23 10:36     ` Petr Mladek
2026-10-27 16:12       ` Breno Leitao
2026-10-27 17:43         ` Breno Leitao
2026-10-27 18:01           ` John Ogness
2026-10-28 11:24             ` Breno Leitao
2026-10-28 10:52     ` Breno Leitao
2026-10-28 14:37       ` John Ogness
2026-10-28 21:15         ` Breno Leitao
2026-10-29  9:20           ` John Ogness
2026-10-29 10:58             ` Breno Leitao
2026-10-29 13:53               ` John Ogness
2026-10-29 14:37                 ` Petr Mladek
2026-10-30 17:56                   ` Breno Leitao
2026-11-02 10:28                     ` Petr Mladek
2026-11-02 13:27                       ` Breno Leitao
2026-11-02 22:22                       ` John Ogness
2026-11-03 13:31                         ` Petr Mladek [this message]
2026-11-02 22:14                     ` John Ogness

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=auniMWhvteH8C3E0@pathway.suse.cz \
    --to=pmladek@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=john.ogness@linutronix.de \
    --cc=leitao@debian.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rioo.tsukatsukii@gmail.com \
    --cc=rostedt@goodmis.org \
    --cc=ryan.roberts@arm.com \
    --cc=senozhatsky@chromium.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

all inboxes | Powered by JetHome®