diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-07 13:11:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-07 13:11:49 +0000 |
commit | f25552c1068a054f2d99afd67a671d5991bf19c1 (patch) | |
tree | d70de5c7262ad572f8323fc4184b8a10522e81ec /debian/patches-rt/0038-printk-nbcon-Start-printing-threads.patch | |
parent | Merging upstream version 6.9.7. (diff) | |
download | linux-f25552c1068a054f2d99afd67a671d5991bf19c1.tar.xz linux-f25552c1068a054f2d99afd67a671d5991bf19c1.zip |
Merging debian version 6.9.7-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0038-printk-nbcon-Start-printing-threads.patch')
-rw-r--r-- | debian/patches-rt/0038-printk-nbcon-Start-printing-threads.patch | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/debian/patches-rt/0038-printk-nbcon-Start-printing-threads.patch b/debian/patches-rt/0038-printk-nbcon-Start-printing-threads.patch deleted file mode 100644 index 63aae75ebb..0000000000 --- a/debian/patches-rt/0038-printk-nbcon-Start-printing-threads.patch +++ /dev/null @@ -1,135 +0,0 @@ -From: John Ogness <john.ogness@linutronix.de> -Date: Tue, 5 Dec 2023 14:09:31 +0000 -Subject: [PATCH 38/48] printk: nbcon: Start printing threads -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.8/older/patches-6.8.2-rt11.tar.xz - -If there are no boot consoles, the printing threads are started -in early_initcall. - -If there are boot consoles, the printing threads are started -after the last boot console has unregistered. The printing -threads do not need to be concerned about boot consoles because -boot consoles cannot register once a non-boot console has -registered. - -Until a printing thread of a console has started, that console -will print using atomic_write() in the printk() caller context. - -Signed-off-by: John Ogness <john.ogness@linutronix.de> -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ---- - kernel/printk/internal.h | 2 ++ - kernel/printk/nbcon.c | 18 +++++++++++++++++- - kernel/printk/printk.c | 14 ++++++++++++++ - 3 files changed, 33 insertions(+), 1 deletion(-) - ---- a/kernel/printk/internal.h -+++ b/kernel/printk/internal.h -@@ -48,6 +48,7 @@ struct printk_ringbuffer; - struct dev_printk_info; - - extern struct printk_ringbuffer *prb; -+extern bool printk_threads_enabled; - - __printf(4, 0) - int vprintk_store(int facility, int level, -@@ -159,6 +160,7 @@ static inline void nbcon_kthread_wake(st - - static inline void nbcon_kthread_wake(struct console *con) { } - static inline void nbcon_kthread_create(struct console *con) { } -+#define printk_threads_enabled (false) - - /* - * In !PRINTK builds we still export console_sem ---- a/kernel/printk/nbcon.c -+++ b/kernel/printk/nbcon.c -@@ -213,6 +213,8 @@ static void nbcon_seq_try_update(struct - } - } - -+bool printk_threads_enabled __ro_after_init; -+ - /** - * nbcon_context_try_acquire_direct - Try to acquire directly - * @ctxt: The context of the caller -@@ -1436,7 +1438,7 @@ void nbcon_kthread_create(struct console - if (!(con->flags & CON_NBCON) || !con->write_thread) - return; - -- if (con->kthread) -+ if (!printk_threads_enabled || con->kthread) - return; - - /* -@@ -1462,6 +1464,19 @@ void nbcon_kthread_create(struct console - sched_set_normal(con->kthread, -20); - } - -+static int __init printk_setup_threads(void) -+{ -+ struct console *con; -+ -+ console_list_lock(); -+ printk_threads_enabled = true; -+ for_each_console(con) -+ nbcon_kthread_create(con); -+ console_list_unlock(); -+ return 0; -+} -+early_initcall(printk_setup_threads); -+ - /** - * nbcon_alloc - Allocate buffers needed by the nbcon console - * @con: Console to allocate buffers for -@@ -1510,6 +1525,7 @@ void nbcon_init(struct console *con) - init_irq_work(&con->irq_work, nbcon_irq_work); - nbcon_seq_force(con, 0); - nbcon_state_set(con, &state); -+ nbcon_kthread_create(con); - } - - /** ---- a/kernel/printk/printk.c -+++ b/kernel/printk/printk.c -@@ -2402,6 +2402,9 @@ asmlinkage int vprintk_emit(int facility - * - * - When this CPU is in panic. - * -+ * - When booting, before the printing threads have been -+ * started. -+ * - * - During shutdown, since the printing threads may not get - * a chance to print the final messages. - * -@@ -2410,6 +2413,7 @@ asmlinkage int vprintk_emit(int facility - * consoles cannot print simultaneously with boot consoles. - */ - if (is_panic_context || -+ !printk_threads_enabled || - (system_state > SYSTEM_RUNNING)) { - nbcon_atomic_flush_pending(); - } -@@ -3726,6 +3730,7 @@ EXPORT_SYMBOL(register_console); - /* Must be called under console_list_lock(). */ - static int unregister_console_locked(struct console *console) - { -+ bool is_boot_con = (console->flags & CON_BOOT); - bool found_legacy_con = false; - bool found_nbcon_con = false; - bool found_boot_con = false; -@@ -3797,6 +3802,15 @@ static int unregister_console_locked(str - if (!found_nbcon_con) - have_nbcon_console = found_nbcon_con; - -+ /* -+ * When the last boot console unregisters, start up the -+ * printing threads. -+ */ -+ if (is_boot_con && !have_boot_console) { -+ for_each_console(c) -+ nbcon_kthread_create(c); -+ } -+ - return res; - } - |