From: Petr Mladek <pmladek@suse.com>
To: John Ogness <john.ogness@linutronix.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jiri Slaby <jirislaby@kernel.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>,
Esben Haabendal <esben@geanix.com>,
linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Arnd Bergmann <arnd@arndb.de>, Tony Lindgren <tony@atomide.com>,
Niklas Schnelle <schnelle@linux.ibm.com>,
Serge Semin <fancer.lancer@gmail.com>,
Andrew Murray <amurray@thegoodpenguin.co.uk>
Subject: Re: [PATCH 0/3] printk/nbcon: Prevent hardlockup reports caused by atomic nbcon flush
Date: Thu, 30 Oct 2025 12:32:46 +0100 [thread overview]
Message-ID: <aQNM3r6YU_4fl2Xx@pathway.suse.cz> (raw)
In-Reply-To: <20250926124912.243464-1-pmladek@suse.com>
On Fri 2025-09-26 14:49:09, Petr Mladek wrote:
> This patchset should solve problem which was being discussed
> at https://lore.kernel.org/all/aNFR45fL2L4PavNc@pathway.suse.cz
>
> __nbcon_atomic_flush_pending_con() preserves the nbcon console
> ownership all the time when flushing pending messages. It might
> take a long time with slow serial consoles.
>
> It might trigger a hardlockup report on another CPU which is
> busy waiting for the nbcon console ownership, for example,
> in nbcon_reacquire_nobuf() or __uart_port_nbcon_acquire().
>
> The problem is solved by the 3rd patch. It releases the console
> context ownership after each record.
>
> The 3rd patch alone would increase the risk of takeovers and repeated
> lines. It is prevented by the 1st patch which blocks the printk kthread
> when any CPU is in an emergency context.
>
> The 2nd patch allows to block the printk kthread also in panic.
> It is not important. It is just an obvious update of the check
> for emergency contexts.
>
> Note: The patchset applies against current Linus' tree (v6.17-rc7).
>
> The 2nd patch would need an update after the consolisation of
> the panic state API gets merged via -mm tree,
> see https://lore.kernel.org/r/20250825022947.1596226-2-wangjinchao600@gmail.com
>
> Petr Mladek (3):
> printk/nbcon: Block printk kthreads when any CPU is in an emergency
> context
> printk/nbcon/panic: Allow printk kthread to sleep when the system is
> in panic
> printk/nbcon: Release nbcon consoles ownership in atomic flush after
> each emitted record
>
> kernel/printk/internal.h | 1 +
> kernel/printk/nbcon.c | 43 +++++++++++++++++++++++++++++++++++-----
> kernel/printk/printk.c | 2 +-
> 3 files changed, 40 insertions(+), 6 deletions(-)
JFYI, the patchset has been comitted into printk/linux.git,
branch rework/atomic-flush-hardlockup[1].
It is queued for 6.19.
Note that I did the following modifications:
+ Added changes into the 1st patch proposed by John[2], namely:
+ initialize nbcon_cpu_emergency_cnt and make it static.
+ call nbcon_kthreads_wake() only when printk_get_console_flush_type()
sets ft.nbcon_offload.
+ Rebased 2nd patch on top of 6.18-rc1 (panic_in_progress() moved to
linux/panic.h).
[1] https://git.kernel.org/pub/scm/linux/kernel/git/printk/linux.git/log/?h=rework/atomic-flush-hardlockup
[2] https://lore.kernel.org/all/841pnti8k2.fsf@jogness.linutronix.de/
Best Regards,
Petr
PS: I thought about sending v2. But v1 already got enough Acks and
I added the requested changes by cut&paste.
prev parent reply other threads:[~2025-10-30 11:32 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-26 12:49 [PATCH 0/3] printk/nbcon: Prevent hardlockup reports caused by atomic nbcon flush Petr Mladek
2025-09-26 12:49 ` [PATCH 1/3] printk/nbcon: Block printk kthreads when any CPU is in an emergency context Petr Mladek
2025-09-26 14:37 ` John Ogness
2025-09-29 12:02 ` Petr Mladek
2025-09-29 8:40 ` Andrew Murray
2025-09-30 20:15 ` kernel test robot
2025-09-26 12:49 ` [PATCH 2/3] printk/nbcon/panic: Allow printk kthread to sleep when the system is in panic Petr Mladek
2025-09-26 14:38 ` John Ogness
2025-09-29 8:39 ` Andrew Murray
2025-09-26 12:49 ` [PATCH 3/3] printk/nbcon: Release nbcon consoles ownership in atomic flush after each emitted record Petr Mladek
2025-09-26 14:43 ` John Ogness
2025-09-29 8:38 ` Andrew Murray
2025-10-30 11:32 ` Petr Mladek [this message]
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=aQNM3r6YU_4fl2Xx@pathway.suse.cz \
--to=pmladek@suse.com \
--cc=amurray@thegoodpenguin.co.uk \
--cc=andriy.shevchenko@linux.intel.com \
--cc=arnd@arndb.de \
--cc=esben@geanix.com \
--cc=fancer.lancer@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=schnelle@linux.ibm.com \
--cc=senozhatsky@chromium.org \
--cc=tglx@linutronix.de \
--cc=tony@atomide.com \
/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