From: Sergey Senozhatsky <senozhatsky@chromium.org>
To: Petr Mladek <pmladek@suse.com>
Cc: John Ogness <john.ogness@linutronix.de>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH printk v1 06/10] printk: use seqcount_latch for console_seq
Date: Tue, 31 Aug 2021 12:05:25 +0900 [thread overview]
Message-ID: <YS2cdfN5/D1Jzelg@google.com> (raw)
In-Reply-To: <YQ1bsdh8PoLwBrnl@alley>
On (21/08/06 17:56), Petr Mladek wrote:
>
> A solution might be to implement a generic cycle that would use
> the right latched_seq and buffers. Something like:
>
> enum console_mode {
> CONSOLE_MODE_NORMAL = 0,
> CONSOLE_MODE_ATOMIC,
> CONSOLE_MODE_ATOMIC_NMI,
> CONSOLE_MODE_REPLAY_ALL,
> CONSOLE_MODE_LAST
> };
>
> struct console_mode_info
> {
> static char text[CONSOLE_LOG_MAX];
> static char ext_text[CONSOLE_EXT_LOG_MAX];
> static struct latched_seq seq;
> };
Seems to me like this wants to be part of struct console.
[..]
> Problems:
>
> a) The same line might be printed by more contexts.
> b) per-console kthreads?
>
>
> Ad a) I am not sure if we could prevent duplicated lines when
> the nested IRQ/NMI writes the same message that is just
> being written by the outer context. But it should be
> an acceptable corner case.
>
> Ad b) Everything will get much more complicated with per-console
> kthreads. We will need counters and buffers for each console
> and each context.
Oh, yes, you are talking about per-console counters/buffers too.
> This is what I was able to come up before leaving for vacation. I am
> not sure if it is the best design/naming and it if it has a chance
> to work.
>
> But it looks like a way how to re-use the same code in all modes.
> It might help to see what is the same and what is special about each
> mode.
>
>
> I would prefer to see something like this instead of the completely
> different code paths for atomic consoles that are proposed by 7th
> patch of this patchset.
I agree.
next prev parent reply other threads:[~2021-08-31 3:05 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-03 13:12 [PATCH printk v1 00/10] printk: introduce atomic consoles and sync mode John Ogness
2021-08-03 13:12 ` [PATCH printk v1 01/10] printk: relocate printk cpulock functions John Ogness
2021-08-04 9:24 ` Petr Mladek
2021-08-03 13:12 ` [PATCH printk v1 02/10] printk: rename printk cpulock API and always disable interrupts John Ogness
2021-08-04 9:52 ` Petr Mladek
2021-08-03 13:12 ` [PATCH printk v1 03/10] kgdb: delay roundup if holding printk cpulock John Ogness
2021-08-03 14:25 ` Daniel Thompson
2021-08-03 15:30 ` John Ogness
2021-08-04 11:31 ` Daniel Thompson
2021-08-04 12:12 ` Petr Mladek
2021-08-04 15:04 ` Daniel Thompson
2021-08-05 3:46 ` John Ogness
2021-08-06 12:06 ` Daniel Thompson
2021-08-04 12:31 ` Petr Mladek
2021-08-03 13:12 ` [PATCH printk v1 04/10] printk: relocate printk_delay() John Ogness
2021-08-04 13:07 ` Petr Mladek
2021-08-03 13:12 ` [PATCH printk v1 05/10] printk: call boot_delay_msec() in printk_delay() John Ogness
2021-08-04 13:09 ` Petr Mladek
2021-08-31 1:04 ` Sergey Senozhatsky
2021-08-03 13:12 ` [PATCH printk v1 06/10] printk: use seqcount_latch for console_seq John Ogness
2021-08-05 12:16 ` Petr Mladek
2021-08-05 15:26 ` John Ogness
2021-08-06 15:56 ` Petr Mladek
2021-08-31 3:05 ` Sergey Senozhatsky [this message]
2021-08-03 13:12 ` [PATCH printk v1 07/10] console: add write_atomic interface John Ogness
2021-08-03 14:02 ` Andy Shevchenko
2021-08-06 10:56 ` John Ogness
2021-08-06 11:18 ` Andy Shevchenko
2021-08-31 2:55 ` Sergey Senozhatsky
2021-08-03 13:12 ` [PATCH printk v1 08/10] printk: introduce kernel sync mode John Ogness
2021-08-05 17:11 ` Petr Mladek
2021-08-05 21:25 ` John Ogness
2021-08-03 13:13 ` [PATCH printk v1 09/10] kdb: if available, only use atomic consoles for output mirroring John Ogness
2021-08-03 13:13 ` [PATCH printk v1 10/10] serial: 8250: implement write_atomic John Ogness
2021-08-03 14:07 ` Andy Shevchenko
2021-08-05 7:47 ` Jiri Slaby
2021-08-05 8:26 ` John Ogness
2021-08-03 13:52 ` [PATCH printk v1 00/10] printk: introduce atomic consoles and sync mode Andy Shevchenko
2021-08-05 15:47 ` Petr Mladek
2021-08-31 0:33 ` Sergey Senozhatsky
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=YS2cdfN5/D1Jzelg@google.com \
--to=senozhatsky@chromium.org \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.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