diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 17:40:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 17:44:43 +0000 |
commit | b5b67adcc17e3e74dbcda09ff3f8a4636aa53486 (patch) | |
tree | 601c346183757b42c53b1d0aa8773cb00d1bd73c /debian/patches-rt/0126-printk-nbcon-Start-printing-threads.patch | |
parent | Merging upstream version 6.7.7. (diff) | |
download | linux-b5b67adcc17e3e74dbcda09ff3f8a4636aa53486.tar.xz linux-b5b67adcc17e3e74dbcda09ff3f8a4636aa53486.zip |
Merging debian version 6.7.7-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0126-printk-nbcon-Start-printing-threads.patch')
-rw-r--r-- | debian/patches-rt/0126-printk-nbcon-Start-printing-threads.patch | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/debian/patches-rt/0126-printk-nbcon-Start-printing-threads.patch b/debian/patches-rt/0126-printk-nbcon-Start-printing-threads.patch deleted file mode 100644 index ec41221636..0000000000 --- a/debian/patches-rt/0126-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 126/134] printk: nbcon: Start printing threads -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6.7-rt18.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 -@@ -44,6 +44,7 @@ enum printk_info_flags { - }; - - extern struct printk_ringbuffer *prb; -+extern bool printk_threads_enabled; - extern bool have_legacy_console; - extern bool have_boot_console; - -@@ -161,6 +162,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) - #define printing_via_unlock (false) - - /* ---- a/kernel/printk/nbcon.c -+++ b/kernel/printk/nbcon.c -@@ -205,6 +205,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 -@@ -1401,7 +1403,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; - - /* -@@ -1427,6 +1429,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 -@@ -1477,6 +1492,7 @@ void nbcon_init(struct console *con) - init_irq_work(&con->irq_work, nbcon_irq_work); - nbcon_seq_force(con, con->seq); - nbcon_state_set(con, &state); -+ nbcon_kthread_create(con); - } - - /** ---- a/kernel/printk/printk.c -+++ b/kernel/printk/printk.c -@@ -2389,6 +2389,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. - * -@@ -2398,6 +2401,7 @@ asmlinkage int vprintk_emit(int facility - * with boot consoles. - */ - if (is_panic_context || -+ !printk_threads_enabled || - (system_state > SYSTEM_RUNNING)) { - nbcon_atomic_flush_all(); - } -@@ -3685,6 +3689,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; -@@ -3756,6 +3761,15 @@ static int unregister_console_locked(str - if (!found_nbcon_con) - have_nbcon_console = false; - -+ /* -+ * 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; - } - |