All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>,
	linux-kernel@vger.kernel.org,
	kgdb-bugreport@lists.sourceforge.net,
	Andrew Morton <akpm@linux-foundation.org>,
	Ingo Molnar <mingo@redhat.com>,
	patches@linaro.org, linaro-kernel@lists.linaro.org,
	John Stultz <john.stultz@linaro.org>,
	Sumit Semwal <sumit.semwal@linaro.org>,
	stable@vger.kernel.org
Subject: Re: [PATCH v2 3.18-rc3] kdb: Avoid printing KERN_ levels to consoles
Date: Fri, 07 Nov 2014 08:04:32 -0800	[thread overview]
Message-ID: <1415376272.23530.10.camel@perches.com> (raw)
In-Reply-To: <1415361686-3797-1-git-send-email-daniel.thompson@linaro.org>

On Fri, 2014-11-07 at 12:01 +0000, Daniel Thompson wrote:
> Currently when kdb traps printk messages then the raw log level prefix
> (consisting of '\001' followed by a numeral) does not get stripped off
> before the message is issued to the various I/O handlers supported by
> kdb. This causes annoying visual noise as well as causing problems
> grepping for ^. It is also a change of behaviour compared to normal usage
> of printk() usage. For example <SysRq>-h ends up with different output to
> that of kdb's "sr h".
> 
> This patch addresses the problem by stripping log levels from messages
> before they are issued to the I/O handlers. printk() which can also
> act as an i/o handler in some cases is special cased; if the caller
> provided a log level then this will be preserved when sent to printk().
> 
> The addition of non-printable characters to the output of kdb commands is a
> regression, albeit and extremely elderly one, introduced by commit
> 04d2c8c83d0e ("printk: convert the format for KERN_<LEVEL> to a 2 byte
> pattern"). Note also that this patch does *not* restore the original
> behaviour from v3.5. Instead it makes printk() from within a kdb command
> display the message without any prefix (i.e. like printk() normally does).
[]
> diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c
[]
> @@ -711,7 +712,10 @@ kdb_printit:
>  	if (logging) {
>  		saved_loglevel = console_loglevel;
>  		console_loglevel = CONSOLE_LOGLEVEL_SILENT;
> -		printk(KERN_INFO "%s", kdb_buffer);
> +		if (cp == kdb_buffer)
> +			printk(KERN_INFO "%s", kdb_buffer);
> +		else
> +			printk("%s", kdb_buffer);

The first part of the patch seem fine, but I'm
confused about this bit above.

Here, isn't the "if (cp == kdb_buffer)" unnecessary?

if "(cp != kdb_buffer)", the buffer does have
a prefix and it's emitted.

If (cp == kdb_buffer), the buffer does _not_ have
a prefix (meaning it's either a naked printk or
a continuation line. (KERN_CONT is "")

So why insert KERN_INFO?

I believe the code should be:

-		printk(KERN_INFO "%s", kdb_buffer);
+		printk("%s", kdb_buffer);



  reply	other threads:[~2014-11-07 16:04 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-24 10:38 [PATCH 3.17rc4] kdb: Avoid printing KERN_ levels to consoles Daniel Thompson
2014-11-06 15:27 ` [RESEND PATCH 3.18-rc3] " Daniel Thompson
2014-11-06 16:13   ` Joe Perches
2014-11-06 17:22     ` Daniel Thompson
2014-11-06 17:43       ` Joe Perches
2014-11-07  9:57         ` Daniel Thompson
2014-11-07 10:10           ` Joe Perches
2014-11-07 12:01   ` [PATCH v2 " Daniel Thompson
2014-11-07 16:04     ` Joe Perches [this message]
2014-11-07 16:50       ` Daniel Thompson
2014-11-07 17:16         ` Joe Perches
2014-11-07 17:27           ` Daniel Thompson
2014-11-07 18:47   ` [PATCH v3 " Daniel Thompson
2014-11-07 19:03     ` Joe Perches
2014-11-17  1:13     ` Joe Perches
2015-01-07 15:31     ` [RESEND PATCH v3 3.19-rc2] " Daniel Thompson

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=1415376272.23530.10.camel@perches.com \
    --to=joe@perches.com \
    --cc=akpm@linux-foundation.org \
    --cc=daniel.thompson@linaro.org \
    --cc=jason.wessel@windriver.com \
    --cc=john.stultz@linaro.org \
    --cc=kgdb-bugreport@lists.sourceforge.net \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=patches@linaro.org \
    --cc=stable@vger.kernel.org \
    --cc=sumit.semwal@linaro.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.