From: Petr Mladek <pmladek@suse.com>
To: John Ogness <john.ogness@linutronix.de>
Cc: Daniel Thompson <daniel.thompson@linaro.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org,
Jason Wessel <jason.wessel@windriver.com>,
Douglas Anderson <dianders@chromium.org>,
Aaron Tomlin <atomlin@redhat.com>,
Luis Chamberlain <mcgrof@kernel.org>,
kgdb-bugreport@lists.sourceforge.net
Subject: Re: [PATCH printk v3 15/40] kdb: use srcu console list iterator
Date: Wed, 9 Nov 2022 16:27:44 +0100 [thread overview]
Message-ID: <Y2vG8KZXBiw2TDLl@alley> (raw)
In-Reply-To: <87wn848okk.fsf@jogness.linutronix.de>
On Wed 2022-11-09 10:33:55, John Ogness wrote:
> Hi Daniel,
>
> On 2022-11-09, Daniel Thompson <daniel.thompson@linaro.org> wrote:
> >> + /*
> >> + * The console_srcu_read_lock() only provides safe console list
> >> + * traversal. The use of the ->write() callback relies on all other
> >> + * CPUs being stopped at the moment and console drivers being able to
> >> + * handle reentrance when @oops_in_progress is set. (Note that there
> >> + * is no guarantee for either criteria.)
> >> + */
> >
> > The debugger entry protocol does ensure that other CPUs are either
> > stopped or unresponsive. In the case where the other CPU is unresponsive
> > (e.g. timed out after being asked to stop) then there is a "real" printk()
> > issued prior to any of the above interference with the console system to
> > the developer driving the debugger gets as much clue as we can offer them
> > about what is going on (typically this is emitted from regular interrupt
> > context).
> >
> > Given this comment is part of the debugger code then for the
> > oops_in_progress hack it might be more helpful to describe what
> > the developer in front the debugger needs to do to have the most
> > reliable debug session possible.
> >
> > There is no guarantee that every console drivers can handle reentrance
> > in this way; the developer deploying the debugger is responsible for
> > ensuring that the console drivers they have selected handle reentrance
> > appropriately.
>
> Thanks for the explanation. I will change the comment to:
>
> /*
> * The console_srcu_read_lock() only provides safe console list
> * traversal. The use of the ->write() callback relies on all other
> * CPUs being stopped at the moment and console drivers being able to
> * handle reentrance when @oops_in_progress is set.
> *
> * There is no guarantee that every console driver can handle
> * reentrance in this way; the developer deploying the debugger
> * is responsible for ensuring that the console drivers they
> * have selected handle reentrance appropriately.
> */
Looks good to me.
After merging this with the 10th patch that adds the data_race() annotated
check of CON_ENABLED flag:
Reviewed-by: Petr Mladek <pmladek@suse.com>
Best Regards,
Petr
next prev parent reply other threads:[~2022-11-09 15:27 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-07 14:15 [PATCH printk v3 00/40] reduce console_lock scope John Ogness
2022-11-07 14:15 ` John Ogness
2022-11-07 14:15 ` John Ogness
2022-11-07 14:15 ` John Ogness
2022-11-07 14:15 ` [PATCH printk v3 01/40] rcu: implement lockdep_rcu_enabled for !CONFIG_DEBUG_LOCK_ALLOC John Ogness
2022-11-07 18:01 ` Paul E. McKenney
2022-11-07 19:23 ` John Ogness
2022-11-08 19:27 ` Paul E. McKenney
2022-11-09 17:49 ` Paul E. McKenney
2022-11-08 10:29 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 02/40] serial: kgdboc: Lock console list in probe function John Ogness
2022-11-09 8:20 ` Daniel Thompson
2022-11-07 14:16 ` [PATCH printk v3 03/40] printk: Convert console_drivers list to hlist John Ogness
2022-11-07 14:16 ` [PATCH printk v3 04/40] printk: Prepare for SRCU console list protection John Ogness
2022-11-08 12:14 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 05/40] printk: fix setting first seq for consoles John Ogness
2022-11-08 12:20 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 06/40] um: kmsg_dump: only dump when no output console available John Ogness
2022-11-07 14:16 ` John Ogness
2022-11-08 12:41 ` Petr Mladek
2022-11-08 12:41 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 07/40] console: introduce console_is_enabled() wrapper John Ogness
2022-11-08 16:18 ` Petr Mladek
2022-11-10 15:05 ` John Ogness
2022-11-11 13:32 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 08/40] printk: use console_is_enabled() John Ogness
2022-11-08 17:40 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 09/40] um: kmsg_dump: " John Ogness
2022-11-07 14:16 ` John Ogness
2022-11-09 14:52 ` Petr Mladek
2022-11-09 14:52 ` Petr Mladek
2022-11-09 14:56 ` Petr Mladek
2022-11-09 14:56 ` Petr Mladek
2022-11-09 14:57 ` Petr Mladek
2022-11-09 14:57 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 10/40] kdb: kdb_io: " John Ogness
2022-11-09 8:22 ` Daniel Thompson
2022-11-09 14:59 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 11/40] um: kmsg_dumper: use srcu console list iterator John Ogness
2022-11-07 14:16 ` John Ogness
2022-11-09 15:05 ` Petr Mladek
2022-11-09 15:05 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 12/40] tty: serial: kgdboc: document console_lock usage John Ogness
2022-11-09 8:23 ` Daniel Thompson
2022-11-09 15:19 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 13/40] tty: tty_io: " John Ogness
2022-11-09 15:20 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 14/40] proc: consoles: " John Ogness
2022-11-09 15:22 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 15/40] kdb: use srcu console list iterator John Ogness
2022-11-09 8:53 ` Daniel Thompson
2022-11-09 9:27 ` John Ogness
2022-11-09 15:27 ` Petr Mladek [this message]
2022-11-07 14:16 ` [PATCH printk v3 16/40] printk: console_flush_all: " John Ogness
2022-11-07 14:16 ` [PATCH printk v3 17/40] printk: console_unblank: " John Ogness
2022-11-07 14:16 ` [PATCH printk v3 18/40] printk: console_flush_on_panic: " John Ogness
2022-11-07 14:16 ` [PATCH printk v3 19/40] printk: console_device: " John Ogness
2022-11-09 15:58 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 20/40] printk: __pr_flush: " John Ogness
2022-11-07 14:16 ` [PATCH printk v3 21/40] printk: introduce console_list_lock John Ogness
2022-11-10 12:58 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 22/40] console: introduce console_is_registered() John Ogness
2022-11-10 13:00 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 23/40] serial_core: replace uart_console_enabled() with uart_console_registered() John Ogness
2022-11-08 8:46 ` Geert Uytterhoeven
2022-11-10 13:24 ` Petr Mladek
2022-11-10 13:46 ` John Ogness
2022-11-07 14:16 ` [PATCH printk v3 24/40] tty: nfcon: use console_is_registered() John Ogness
2022-11-08 8:39 ` Geert Uytterhoeven
2022-11-10 13:58 ` Petr Mladek
2022-11-10 14:19 ` John Ogness
2022-11-10 17:50 ` Eero Tamminen
2022-11-07 14:16 ` [PATCH printk v3 25/40] efi: earlycon: " John Ogness
2022-11-10 14:28 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 26/40] tty: hvc: " John Ogness
2022-11-07 14:16 ` John Ogness
2022-11-10 14:52 ` Petr Mladek
2022-11-10 14:52 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 27/40] tty: serial: earlycon: " John Ogness
2022-11-10 15:00 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 28/40] tty: serial: pic32_uart: " John Ogness
2022-11-10 15:01 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 29/40] tty: serial: samsung_tty: " John Ogness
2022-11-07 14:16 ` John Ogness
2022-11-10 15:01 ` Petr Mladek
2022-11-10 15:01 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 30/40] tty: serial: xilinx_uartps: " John Ogness
2022-11-07 14:16 ` John Ogness
2022-11-10 15:04 ` Petr Mladek
2022-11-10 15:04 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 31/40] usb: early: xhci-dbc: " John Ogness
2022-11-10 15:05 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 32/40] netconsole: avoid CON_ENABLED misuse to track registration John Ogness
2022-11-10 15:17 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 33/40] printk, xen: fbfront: create/use safe function for forcing preferred John Ogness
2022-11-07 14:16 ` John Ogness
2022-11-10 15:34 ` Petr Mladek
2022-11-10 15:34 ` Petr Mladek
2022-11-10 16:03 ` John Ogness
2022-11-10 16:03 ` John Ogness
2022-11-10 17:26 ` Petr Mladek
2022-11-10 17:26 ` Petr Mladek
2022-11-10 22:37 ` John Ogness
2022-11-10 22:37 ` John Ogness
2022-11-11 10:48 ` Petr Mladek
2022-11-11 10:48 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 34/40] tty: tty_io: use console_list_lock for list synchronization John Ogness
2022-11-07 14:16 ` [PATCH printk v3 35/40] proc: consoles: use console_list_lock for list iteration John Ogness
2022-11-07 14:16 ` [PATCH printk v3 36/40] tty: serial: kgdboc: use console_list_lock for list traversal John Ogness
2022-11-09 9:06 ` Daniel Thompson
2022-11-09 9:44 ` John Ogness
2022-11-10 18:00 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 37/40] tty: serial: kgdboc: synchronize tty_find_polling_driver() and register_console() John Ogness
2022-11-10 15:13 ` Daniel Thompson
2022-11-10 18:03 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 38/40] tty: serial: kgdboc: use console_list_lock to trap exit John Ogness
2022-11-10 15:18 ` Daniel Thompson
2022-11-11 9:59 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 39/40] printk: relieve console_lock of list synchronization duties John Ogness
2022-11-07 16:30 ` John Ogness
2022-11-11 10:27 ` Petr Mladek
2022-11-11 13:06 ` Petr Mladek
2022-11-07 14:16 ` [PATCH printk v3 40/40] tty: serial: sh-sci: use setup() callback for early console John Ogness
2022-11-08 8:53 ` Geert Uytterhoeven
2022-11-11 17:15 ` Petr Mladek
2022-11-11 14:43 ` [PATCH printk v3 00/40] reduce console_lock scope Mathieu Desnoyers
2022-11-11 14:43 ` Mathieu Desnoyers
2022-11-11 14:43 ` Mathieu Desnoyers
2022-11-11 14:43 ` Mathieu Desnoyers
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=Y2vG8KZXBiw2TDLl@alley \
--to=pmladek@suse.com \
--cc=atomlin@redhat.com \
--cc=daniel.thompson@linaro.org \
--cc=dianders@chromium.org \
--cc=jason.wessel@windriver.com \
--cc=john.ogness@linutronix.de \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mcgrof@kernel.org \
--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 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.