[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <32bba8f8-dec7-78aa-f2e5-f62928412eda@samsung.com>
Date: Mon, 2 May 2022 11:19:07 +0200
From: Marek Szyprowski <m.szyprowski@...sung.com>
To: John Ogness <john.ogness@...utronix.de>,
Petr Mladek <pmladek@...e.com>
Cc: Sergey Senozhatsky <senozhatsky@...omium.org>,
Steven Rostedt <rostedt@...dmis.org>,
Thomas Gleixner <tglx@...utronix.de>,
linux-kernel@...r.kernel.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-amlogic@...ts.infradead.org
Subject: Re: [PATCH printk v5 1/1] printk: extend console_lock for
per-console locking
Hi John,
On 30.04.2022 18:00, John Ogness wrote:
> On 2022-04-29, Marek Szyprowski <m.szyprowski@...sung.com> wrote:
>> The same issue happens if I boot with init=/bin/bash
> Very interesting. Since you are seeing all the output up until you try
> doing something, I guess receiving UART data is triggering the issue.
Right, this is how it looks like.
>> I found something really interesting. When lockup happens, I'm still
>> able to log via ssh and trigger any magic sysrq action via
>> /proc/sysrq-trigger.
> If you boot the system and directly login via ssh (without sending any
> data via serial), can you trigger printk output on the UART? For
> example, with:
>
> echo hello > /dev/kmsg
>
> (You might need to increase your loglevel to see it.)
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.
>> It turned out that the UART console is somehow blocked, but it
>> receives and buffers all the input. For example after issuing "echo
>> >/proc/sysrq-trigger" from the ssh console, the UART console has been
>> updated and I see the magic sysrq banner and then all the commands I
>> blindly typed in the UART console! However this doesn't unblock the
>> console.
> sysrq falls back to direct printing. This would imply that the kthread
> printer is somehow unable to print.
>
>> Here is the output of 't' magic sys request:
>>
>> https://protect2.fireeye.com/v1/url?k=8649f24d-e73258c4-86487902-74fe48600034-a2ca6bb18361467d&q=1&e=1bc4226f-a422-42b9-95e8-128845b8609f&u=https%3A%2F%2Fpastebin.com%2FfjbRuy4f
> It looks like the call trace for the printing kthread (pr/ttyAML0) is
> corrupt.
Right, good catch. 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
> Could you post your kernel config?
https://pastebin.com/GUWGdCHX
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
Powered by blists - more mailing lists