[PATCH printk v2] printk: Postpone kthread startup

From: John Ogness

Date: Fri Oct 16 2026 - 04:57:37 EST


There have been various bug reports related to SMP systems hanging
on boot. The reports vary but seem to have some overlap with regard
to missed IPI's during SMP setup. The reports also show that
reverting NBCON console usage allows the bugs to disappear.

The NBCON kthreads for console printing are started very early
during boot using early_initcall(). Since these kthreads are
asynchronously enabling/disabling interrupts during early boot, they
may be interfering with early SMP setup on some hardware platforms.

Starting the console printing kthreads later has shown to avoid the
hanging on systems that could previously reproduce the issue.

Postpone kthread starting until after all arch initcalls have
completed.

Reported-by: Derek Barbosa <debarbos@xxxxxxxxxx>
Closes: https://lore.kernel.org/linux-rt-users/arPmYPbFLf2EldIl@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fixes: 76f258bf3f2a ("printk: nbcon: Introduce printer kthreads")
Signed-off-by: John Ogness <john.ogness@xxxxxxxxxxxxx>
---
v1: https://lore.kernel.org/lkml/87ecdrqfhw.fsf@xxxxxxxxxxxxxxxxxxxxx

changes since v1:
- Reword commit message.
- Rebase from 6.6-rt to 7.3-rc.

kernel/printk/printk.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 0ed86b5e8b160..9a205f94bfac7 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3864,7 +3864,7 @@ static int __init printk_set_kthreads_ready(void)

return 0;
}
-early_initcall(printk_set_kthreads_ready);
+subsys_initcall(printk_set_kthreads_ready);
#endif /* CONFIG_PRINTK */

static int __read_mostly keep_bootcon;

base-commit: 38dfd607b58b63b5488d5756786ee4ee499eebb8
--
2.47.3