summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0038-printk-nbcon-Start-printing-threads.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-07 13:11:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-07 13:11:49 +0000
commitf25552c1068a054f2d99afd67a671d5991bf19c1 (patch)
treed70de5c7262ad572f8323fc4184b8a10522e81ec /debian/patches-rt/0038-printk-nbcon-Start-printing-threads.patch
parentMerging upstream version 6.9.7. (diff)
downloadlinux-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.patch135
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;
- }
-