Messages in this thread Patch in this message | | | From | John Ogness <> | Subject | Re: [PATCH printk v5 1/1] printk: extend console_lock for per-console locking | Date | Mon, 02 May 2022 15:17:29 +0206 |
| |
On 2022-05-02, Marek Szyprowski <m.szyprowski@samsung.com> wrote: > Data written to /dev/kmsg and all kernel logs were always displayed > correctly. Also data written directly to /dev/ttyAML0 is displayed > properly on the console. The latter doesn't however trigger the input > related activity. > > It looks that the data read from the uart is delivered only if other > activity happens on the kernel console. If I type 'reboot' and press > enter, nothing happens immediately. If I type 'date >/dev/ttyAML0' via > ssh then, I only see the date printed on the console. However if I > type 'date >/dev/kmsg', the the date is printed and reboot happens.
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?
> For comparison, here is a 't' sysrq result from the 'working' serial > console (next-20220429), which happens usually 1 of 4 boots: > > https://pastebin.com/mp8zGFbW
This still looks odd to me. We should be seeing a trace originating from ret_from_fork+0x10/0x20 and kthread+0x118/0x11c.
I wonder if the early creation of the thread is somehow causing problems. Could you try the following patch to see if it makes a difference? I would also like to see the sysrq-t output with this patch applied:
---------------- BEGIN PATCH --------------- diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 2311a0ad584a..c4362d25de22 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -3837,7 +3837,7 @@ static int __init printk_activate_kthreads(void) return 0; } -early_initcall(printk_activate_kthreads); +late_initcall(printk_activate_kthreads); #if defined CONFIG_PRINTK /* If @con is specified, only wait for that console. Otherwise wait for all. */ ---------------- END PATCH --------------- Thanks for your help with this!
John
| |