linux/kernel/printk
John Ogness 5f339c46f1 printk: Postpone kthread startup
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@redhat.com>
Closes: https://lore.kernel.org/linux-rt-users/arPmYPbFLf2EldIl@debarbos-thinkpadt14gen5.rmtusma.csb
Fixes: 76f258bf3f ("printk: nbcon: Introduce printer kthreads")
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Tested-by: Derek Barbosa <debarbos@redhat.com>
Link: https://patch.msgid.link/20261016085441.857695-1-john.ogness@linutronix.de
Signed-off-by: Petr Mladek <pmladek@suse.com>
2026-10-16 17:07:29 +02:00
..
.kunitconfig printk: ringbuffer: Add KUnit test 2025-06-18 16:42:42 +02:00
braille.c
braille.h
console_cmdline.h printk: Add match_devname_and_update_preferred_console() 2024-07-04 15:41:44 +02:00
index.c kernel/printk/index.c: fix memory leak with using debugfs_lookup() 2023-02-03 10:42:02 +01:00
internal.h Summary 2026-02-18 10:45:36 -08:00
Makefile printk: ringbuffer: Add KUnit test 2025-06-18 16:42:42 +02:00
nbcon.c printk: fix kernel-doc name for nbcon_write_context_is_braille 2026-10-14 15:00:40 +02:00
printk_ringbuffer_kunit_test.c printk: kunit: support offstack cpumask 2025-09-10 17:18:37 +02:00
printk_ringbuffer.c printk: ringbuffer: fix errors in comments 2026-03-31 17:40:23 +02:00
printk_ringbuffer.h Merge branch 'rework/prb-fixes' into for-linus 2026-04-20 13:42:01 +02:00
printk_safe.c printk: Defer legacy printing when holding printk_cpu_sync 2024-12-16 13:26:31 +01:00
printk.c printk: Postpone kthread startup 2026-10-16 17:07:29 +02:00
sysctl.c sysctl: Remove unused ctl_table forward declarations 2026-01-05 13:54:41 +01:00