Re: [PATCH printk v5 1/1] printk: extend console_lock for per-console locking

From: John Ogness
Date: Wed May 04 2022 - 01:56:41 EST


On 2022-05-03, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> wrote:
>> I suppose if you login via ssh and check /proc/interrupts, then type
>> some things over serial, then check /proc/interrupts again, you will
>> see there have been no interrupts for the uart. But interrupts for
>> other devices are happening. Is this correct?
>
> Right. The counter for ttyAML0 is not increased when lockup happens
> and I type something to the uart console.

Hmmm. This would imply that the interrupts are disabled fo the UART.

Just to be sure that we haven't corrupted something in the driver, if
you make the following change, everything works, right?

--------- BEGIN PATCH ------
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index c7973266b176..1eaa323e335c 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3578,7 +3578,7 @@ static int __init printk_activate_kthreads(void)
struct console *con;

console_lock();
- printk_kthreads_available = true;
+ //printk_kthreads_available = true;
for_each_console(con)
printk_start_kthread(con);
console_unlock();
--------- END PATCH ------

The above change will cause the kthreads to not print and instead always
fallback to the direct method.

John