All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: John Ogness <john.ogness@linutronix.de>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Randy Dunlap <rdunlap@infradead.org>,
	Marco Elver <elver@google.com>,
	Stephen Boyd <swboyd@chromium.org>,
	Alexander Potapenko <glider@google.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jirislaby@kernel.org>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	Frederic Weisbecker <frederic@kernel.org>,
	Neeraj Upadhyay <quic_neeraju@quicinc.com>,
	Josh Triplett <josh@joshtriplett.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	Joel Fernandes <joel@joelfernandes.org>,
	Kees Cook <keescook@chromium.org>,
	Luis Chamberlain <mcgrof@kernel.org>,
	Xiaoming Ni <nixiaoming@huawei.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Corey Minyard <cminyard@mvista.com>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Mark Brown <broonie@kernel.org>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Shawn Guo <shawn.guo@linaro.org>, Wang Qing <wangqing@vivo.com>,
	rcu@vger.kernel.org
Subject: Re: [PATCH printk v4 00/15] implement threaded console printing
Date: Fri, 22 Apr 2022 11:39:51 +0200	[thread overview]
Message-ID: <YmJ1fnc4trEOooZD@alley> (raw)
In-Reply-To: <20220421212250.565456-1-john.ogness@linutronix.de>

On Thu 2022-04-21 23:28:35, John Ogness wrote:
> This is v4 of a series to implement a kthread for each registered
> console. v3 is here [0]. The kthreads locklessly retrieve the
> records from the printk ringbuffer and also do not cause any lock
> contention between each other. This allows consoles to run at full
> speed. For example, a netconsole is able to dump records much
> faster than a serial or vt console. Also, during normal operation,
> printk() callers are completely decoupled from console printing.
> 
> There are situations where kthread printing is not sufficient. For
> example, during panic situations, where the kthreads may not get a
> chance to schedule. In such cases, the current method of attempting
> to print directly within the printk() caller context is used. New
> functions printk_prefer_direct_enter() and
> printk_prefer_direct_exit() are made available to mark areas of the
> kernel where direct printing is preferred. (These should only be
> areas that do not occur during normal operation.)
> 
> This series also introduces pr_flush(): a might_sleep() function
> that will block until all active printing threads have caught up
> to the latest record at the time of the pr_flush() call. This
> function is useful, for example, to wait until pending records
> are flushed to consoles before suspending.
> 
> Note that this series does *not* increase the reliability of console
> printing. Rather it focuses on the non-interference aspect of
> printk() by decoupling printk() callers from printing (during normal
> operation). Nonetheless, the reliability aspect should not worsen
> due to this series.

This version looks good enough for linux-next. I do not see any
functional problem and it should work as designed. It is time to
see how it works in various "real life" work loads.

I am going to push it later today unless anyone (John) complains ;-)

Best Regards,
Petr

  parent reply	other threads:[~2022-04-22  9:40 UTC|newest]

Thread overview: 99+ 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:08           ` Marek Szyprowski
2022-04-27  7:38           ` Petr Mladek
2022-04-27  7:38             ` Petr Mladek
2022-04-27 11:44             ` Marek Szyprowski
2022-04-27 11:44               ` Marek Szyprowski
2022-04-27 16:15               ` John Ogness
2022-04-27 16:15                 ` John Ogness
2022-04-27 16:48                 ` Petr Mladek
2022-04-27 16:48                   ` Petr Mladek
2022-04-28 14:54                 ` Petr Mladek
2022-04-28 14:54                   ` Petr Mladek
2022-04-29 13:53                 ` Marek Szyprowski
2022-04-29 13:53                   ` Marek Szyprowski
2022-04-30 16:00                   ` John Ogness
2022-04-30 16:00                     ` John Ogness
2022-05-02  9:19                     ` Marek Szyprowski
2022-05-02  9:19                       ` Marek Szyprowski
2022-05-02 13:11                       ` John Ogness
2022-05-02 13:11                         ` John Ogness
2022-05-02 22:29                         ` Marek Szyprowski
2022-05-02 22:29                           ` Marek Szyprowski
2022-05-04  5:56                           ` John Ogness
2022-05-04  5:56                             ` John Ogness
2022-05-04  6:52                             ` Marek Szyprowski
2022-05-04  6:52                               ` Marek Szyprowski
2022-06-08 15:10                         ` Geert Uytterhoeven
2022-06-08 15:10                           ` Geert Uytterhoeven
2022-06-09 11:19                           ` John Ogness
2022-06-09 11:19                             ` John Ogness
2022-06-09 11:58                             ` Jason A. Donenfeld
2022-06-09 11:58                               ` Jason A. Donenfeld
2022-06-09 12:18                               ` Dmitry Vyukov
2022-06-09 12:18                                 ` Dmitry Vyukov
2022-06-09 12:27                                 ` Jason A. Donenfeld
2022-06-09 12:27                                   ` Jason A. Donenfeld
2022-06-09 12:32                                   ` Dmitry Vyukov
2022-06-09 12:32                                     ` Dmitry Vyukov
2022-06-17 16:51                                   ` Sebastian Andrzej Siewior
2022-06-17 16:51                                     ` Sebastian Andrzej Siewior
2022-06-09 12:18                               ` Jason A. Donenfeld
2022-06-09 12:18                                 ` Jason A. Donenfeld
2022-05-02 13:17                       ` Petr Mladek
2022-05-02 13:17                         ` Petr Mladek
2022-05-02 23:13                         ` Marek Szyprowski
2022-05-02 23:13                           ` Marek Szyprowski
2022-05-03  6:49                           ` Petr Mladek
2022-05-03  6:49                             ` Petr Mladek
2022-05-04  6:05                             ` Marek Szyprowski
2022-05-04  6:05                               ` Marek Szyprowski
2022-05-04 21:11                           ` John Ogness
2022-05-04 21:11                             ` John Ogness
2022-05-04 22:42                             ` John Ogness
2022-05-04 22:42                               ` John Ogness
2022-05-05 22:33                               ` John Ogness
2022-05-05 22:33                                 ` John Ogness
2022-05-06  6:43                                 ` Marek Szyprowski
2022-05-06  6:43                                   ` Marek Szyprowski
2022-05-06  7:55                                   ` Neil Armstrong
2022-05-06  7:55                                     ` Neil Armstrong
2022-05-08 11:02                                     ` John Ogness
2022-05-08 11:02                                       ` John Ogness
2022-05-06  8:16                                   ` Petr Mladek
2022-05-06  8:16                                     ` Petr Mladek
2022-05-06  9:20                                   ` John Ogness
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  9:03       ` Geert Uytterhoeven
2022-06-22 22:37       ` John Ogness
2022-06-22 22:37         ` John Ogness
2022-06-23 10:10         ` Geert Uytterhoeven
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 ` Petr Mladek [this message]
2022-04-22 20:29   ` [PATCH printk v4 00/15] implement threaded console printing 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=YmJ1fnc4trEOooZD@alley \
    --to=pmladek@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bigeasy@linutronix.de \
    --cc=bjorn.andersson@linaro.org \
    --cc=broonie@kernel.org \
    --cc=cminyard@mvista.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=ebiederm@xmission.com \
    --cc=elver@google.com \
    --cc=frederic@kernel.org \
    --cc=glider@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jiangshanlai@gmail.com \
    --cc=jirislaby@kernel.org \
    --cc=joel@joelfernandes.org \
    --cc=john.ogness@linutronix.de \
    --cc=josh@joshtriplett.org \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=matti.vaittinen@fi.rohmeurope.com \
    --cc=mcgrof@kernel.org \
    --cc=nixiaoming@huawei.com \
    --cc=npiggin@gmail.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=quic_neeraju@quicinc.com \
    --cc=rcu@vger.kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=senozhatsky@chromium.org \
    --cc=shawn.guo@linaro.org \
    --cc=swboyd@chromium.org \
    --cc=tglx@linutronix.de \
    --cc=wangqing@vivo.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.