From: Petr Mladek <pmladek@suse.com>
To: John Ogness <john.ogness@linutronix.de>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-amlogic@lists.infradead.org
Subject: Re: [PATCH printk v5 1/1] printk: extend console_lock for per-console locking
Date: Thu, 28 Apr 2022 16:54:49 +0200 [thread overview]
Message-ID: <YmqquUrDN2VWnR92@alley> (raw)
In-Reply-To: <87fslyv6y3.fsf@jogness.linutronix.de>
On Wed 2022-04-27 18:21:16, John Ogness wrote:
> Hi Marek,
>
> On 2022-04-27, Marek Szyprowski <m.szyprowski@samsung.com> wrote:
> > Here is the full serial console log:
> >
> > https://pastebin.com/E5CDH88L
>
> Here are a few ideas from me:
>
> 3. It looks like the problem happens quite late in the boot process. I
> expect it is due to some userspace process that is running that is
> interacting with printk (either /dev/kmsg or /proc/kmsg) and is causing
> problems.
I did not find an real issue in the code handling /dev/kmsg,
/proc/kmsg, or syslog sycall API. There might be just few
small changes:
1. There is an increased number of spurious wakeups because
log_wait is shared between upstream readers and printk kthreads.
And we newly wake up waiters from both vprintk_emit()
and __console_unlock() code paths.
It might affect especially the pooling APIs: kmsg_pool(),
devkmsg_pool()). They might return 0 more often than before.
2. 4th patch replaced wake_up_interruptible(&log_wait) with
wake_up_interruptible_all(&log_wait). As a result, all
readers are woken at the same time.
It is perfectly fine because the log buffer is lockless.
And all readers should be either independent or synchronized
against each other.
Any of the above changes should not introduce new problems. But
they might make some old problem (race) more visible.
I spent quite some time reviewing the code and testing. But I neither
see any problem nor I am able to reproduce it. Some more clues
from Marek would be needed.
Best Regards,
Petr
next prev parent reply other threads:[~2022-04-28 14:54 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-21 21:22 [PATCH printk v4 00/15] implement threaded console printing John Ogness
2022-04-21 21:22 ` [PATCH printk v4 01/15] printk: rename cpulock functions John Ogness
2022-04-21 21:22 ` [PATCH printk v4 02/15] printk: cpu sync always disable interrupts John Ogness
2022-04-21 21:22 ` [PATCH printk v4 03/15] printk: add missing memory barrier to wake_up_klogd() John Ogness
2022-04-21 21:22 ` [PATCH printk v4 04/15] printk: wake up all waiters John Ogness
2022-04-21 21:22 ` [PATCH printk v4 05/15] printk: wake waiters for safe and NMI contexts John Ogness
2022-04-21 21:22 ` [PATCH printk v4 06/15] printk: get caller_id/timestamp after migration disable John Ogness
2022-04-21 21:22 ` [PATCH printk v4 07/15] printk: call boot_delay_msec() in printk_delay() John Ogness
2022-04-21 21:22 ` [PATCH printk v4 08/15] printk: add con_printk() macro for console details John Ogness
2022-04-21 21:22 ` [PATCH printk v4 09/15] printk: refactor and rework printing logic John Ogness
2022-04-21 21:22 ` [PATCH printk v4 10/15] printk: move buffer definitions into console_emit_next_record() caller John Ogness
2022-04-21 21:22 ` [PATCH printk v4 11/15] printk: add pr_flush() John Ogness
2022-04-21 21:22 ` [PATCH printk v4 12/15] printk: add functions to prefer direct printing John Ogness
2022-04-21 21:22 ` [PATCH printk v4 13/15] printk: add kthread console printers John Ogness
2022-04-22 7:48 ` Petr Mladek
2022-04-21 21:22 ` [PATCH printk v4 14/15] printk: extend console_lock for proper kthread support John Ogness
2022-04-21 21:40 ` John Ogness
2022-04-22 9:21 ` Petr Mladek
2022-04-25 20:58 ` [PATCH printk v5 1/1] printk: extend console_lock for per-console locking John Ogness
2022-04-26 12:07 ` Petr Mladek
2022-04-26 13:16 ` Petr Mladek
2022-04-27 7:08 ` Marek Szyprowski
2022-04-27 7:38 ` Petr Mladek
2022-04-27 11:44 ` Marek Szyprowski
2022-04-27 16:15 ` John Ogness
2022-04-27 16:48 ` Petr Mladek
2022-04-28 14:54 ` Petr Mladek [this message]
2022-04-29 13:53 ` Marek Szyprowski
2022-04-30 16:00 ` John Ogness
2022-05-02 9:19 ` Marek Szyprowski
2022-05-02 13:11 ` John Ogness
2022-05-02 22:29 ` Marek Szyprowski
2022-05-04 5:56 ` John Ogness
2022-05-04 6:52 ` Marek Szyprowski
2022-06-08 15:10 ` Geert Uytterhoeven
2022-06-09 11:19 ` John Ogness
2022-06-09 11:58 ` Jason A. Donenfeld
2022-06-09 12:18 ` Dmitry Vyukov
2022-06-09 12:27 ` Jason A. Donenfeld
2022-06-09 12:32 ` Dmitry Vyukov
2022-06-17 16:51 ` Sebastian Andrzej Siewior
2022-06-09 12:18 ` Jason A. Donenfeld
2022-05-02 13:17 ` Petr Mladek
2022-05-02 23:13 ` Marek Szyprowski
2022-05-03 6:49 ` Petr Mladek
2022-05-04 6:05 ` Marek Szyprowski
2022-05-04 21:11 ` John Ogness
2022-05-04 22:42 ` John Ogness
2022-05-05 22:33 ` John Ogness
2022-05-06 6:43 ` Marek Szyprowski
2022-05-06 7:55 ` Neil Armstrong
2022-05-08 11:02 ` John Ogness
2022-05-06 8:16 ` Petr Mladek
2022-05-06 9:20 ` John Ogness
2022-05-06 11:25 ` Marek Szyprowski
2022-05-06 12:41 ` John Ogness
2022-05-06 13:04 ` Marek Szyprowski
2022-06-22 9:03 ` Geert Uytterhoeven
2022-06-22 22:37 ` John Ogness
2022-06-23 10:10 ` Geert Uytterhoeven
2022-04-21 21:22 ` [PATCH printk v4 15/15] printk: remove @console_locked John Ogness
2022-04-22 9:39 ` [PATCH printk v4 00/15] implement threaded console printing Petr Mladek
2022-04-22 20:29 ` Petr Mladek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YmqquUrDN2VWnR92@alley \
--to=pmladek@suse.com \
--cc=gregkh@linuxfoundation.org \
--cc=john.ogness@linutronix.de \
--cc=linux-amlogic@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox