From: "Petr Mládek" <pmladek@suse.cz>
To: Alex Elder <elder@linaro.org>
Cc: akpm@linux-foundation.org, kay@vrfy.org, bp@suse.de,
john.stultz@linaro.org, jack@suse.cz,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 3/7] printk: initialize syslog_prev and console_prev
Date: Tue, 22 Jul 2014 14:01:35 +0200 [thread overview]
Message-ID: <20140722120135.GP20751@pathway.suse.cz> (raw)
In-Reply-To: <53CE4F86.2000307@linaro.org>
On Tue 2014-07-22 06:48:22, Alex Elder wrote:
> On 07/21/2014 08:02 AM, Alex Elder wrote:
> > Two global variables, "syslog_prev" and "console_prev", maintain a
> > copy of the flags value used in the log record most recently
> > formatted for syslog or the console, respectively.
> >
> > Initially there is no previous formatted log record, and these
> > variables simply have an initial value 0. And occasionally log
> > records can get consumed at a rate such that syslog or the console
> > can't keep up, in which case those variables (along with their
> > corresponding position variables) must be reset. Here too, they're
> > reset to 0.
> >
> > This patch changes it so the initial value used is LOG_NEWLINE.
> > That is, if we know nothing about the prevously-formatted log
> > record, we can assume it was complete, and ended with a newline.
> > One exception is that occasionally we reset our syslog or console
> > (etc.) position variables. In that case the previously-formatted
> > record flags value is still valid, so we preserve that information.
> >
> > This is being done to support the next patch. Initializing
> > these variables this way makes LOG_NEWLINE and LOG_CONT be
> > mutually exclusive, and the next patch uses that fact to simplify
> > some logic.
> >
> > Signed-off-by: Alex Elder <elder@linaro.org>
> > Reviewed-by: Petr Mládek <pmladek@suse.cz>
>
> I have one change I'd like to suggest on this one.
>
> Petr, could you offer your opinion?
>
>
> > ---
> > kernel/printk/printk.c | 44 ++++++++++++++++++++++++++++++--------------
> > 1 file changed, 30 insertions(+), 14 deletions(-)
> >
> > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> > index 9f11eab..2f43116 100644
> > --- a/kernel/printk/printk.c
> > +++ b/kernel/printk/printk.c
>
>
> . . .
>
> > @@ -2156,10 +2168,14 @@ again:
> > "%s** %u printk messages dropped **\n",
> > (console_prev & LOG_CONT) ? "\n" : "",
> > (unsigned)(log_first_seq - console_seq));
> > - /* messages are gone, move to first one */
> > + /*
> > + * Messages are gone, move to first one.
> > + * Don't discard what we know about the
> > + * previously-formatted record.
> > + */
> > console_seq = log_first_seq;
> > console_idx = log_first_idx;
> > - console_prev = 0;
> > + console_prev &= LOG_NEWLINE|LOG_CONT;
>
> In this one spot, I think console_prev should simply be
> initialized with LOG_NEWLINE.
>
> The reason is that the "printk messages dropped" message will
> be inserted into the formatted output, and is hence the last
> formatted line. And that message is (now) terminated with
> a newline.
Sure. Great catch! I actually mentioned it when commenting v4, see
https://lkml.org/lkml/2014/7/21/153 . But I forgot it today :-/
Best Regards,
Petr
next prev parent reply other threads:[~2014-07-22 12:01 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-21 13:02 [PATCH v5 0/7] printk: start simplifying some flags Alex Elder
2014-07-21 13:02 ` [PATCH v5 1/7] printk: report dropped messages on separate line Alex Elder
2014-07-21 13:02 ` [PATCH v5 2/7] printk: insert newline for truncated records Alex Elder
2014-07-22 9:45 ` Petr Mládek
2014-07-21 13:02 ` [PATCH v5 3/7] printk: initialize syslog_prev and console_prev Alex Elder
2014-07-22 11:48 ` Alex Elder
2014-07-22 12:01 ` Petr Mládek [this message]
2014-07-21 13:02 ` [PATCH v5 4/7] printk: LOG_CONT and LOG_NEWLINE are opposites Alex Elder
2014-07-21 13:02 ` [PATCH v5 5/7] printk: honor LOG_PREFIX in devkmsg_read() Alex Elder
2014-07-21 13:02 ` [PATCH v5 6/7] printk: honor LOG_PREFIX in msg_print_text() Alex Elder
2014-07-21 13:02 ` [PATCH v5 7/7] printk: correct some more typos Alex Elder
2014-07-22 10:04 ` [PATCH v5 0/7] printk: start simplifying some flags Petr Mládek
2014-07-22 11:23 ` Alex Elder
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=20140722120135.GP20751@pathway.suse.cz \
--to=pmladek@suse.cz \
--cc=akpm@linux-foundation.org \
--cc=bp@suse.de \
--cc=elder@linaro.org \
--cc=jack@suse.cz \
--cc=john.stultz@linaro.org \
--cc=kay@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
/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.