public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	Alexander van Heukelum <heukelum@fastmail.fm>,
	tglx@linutronix.de, luto@amacapital.net, fruggeri@arista.com,
	a.ryabinin@samsung.com, akpm@linux-foundation.org, hpa@zytor.com,
	Adrien Schildknecht <adrien+dev@schischi.me>,
	linux-kernel@vger.kernel.org, bp@alien8.de, adech.fo@gmail.com,
	x86@kernel.org, mingo@redhat.com
Subject: Re: [PATCH v2] x86: fix output of show_stack_log_lvl()
Date: Fri, 20 Feb 2015 09:40:16 -0800	[thread overview]
Message-ID: <1424454016.18211.8.camel@perches.com> (raw)
In-Reply-To: <20150220120506.1c3812a8@grimm.local.home>

On Fri, 2015-02-20 at 12:05 -0500, Steven Rostedt wrote:
> On Thu, 19 Feb 2015 21:13:29 -0800
> Linus Torvalds <torvalds@linux-foundation.org> wrote:
> 
> > On Feb 19, 2015 8:45 PM, "Steven Rostedt" <rostedt@goodmis.org> wrote:
> > >
> > > This looks like a bug in printk(). Why doesn't pr_cont() continue? It
> > > shouldn't care if there's a newline or not. pr_cont() is supposed to
> > > continue whatever the last printk log level was.
> > 
> > pr_cont() should continue the current line. If there was a behind, and it's
> > a new line, then pr_cont() is meaningless.
> 
> Ah, you are right. I got confused by the lack of comments around
> pr_cont. Now KERN_CONT is nicely commented, but unfortunately that
> comment exists in a different file.
> 
> How about adding the below patch so people like me wont get confused
> again.
> 
> -- Steve
> 
> printk: Comment pr_cont() stating it is only to continue a line
> 
> KERN_CONT is nicely commented in kern_levels.h, but pr_cont() is now
> used more often, and it lacks the comment stating what it is used for.
> It can be confused as continuing the log level, but that is not its
> purpose. It's purpose is to continue a line that had no newline
> enclosed. This should be documented by pr_cont() as well.
> 
> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
> ---
> diff --git a/include/linux/printk.h b/include/linux/printk.h
> index 4d5bf57..937d2f3 100644
> --- a/include/linux/printk.h
> +++ b/include/linux/printk.h
> @@ -255,6 +255,11 @@ extern asmlinkage void dump_stack(void) __cold;
>  	printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
>  #define pr_info(fmt, ...) \
>  	printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
> +/*
> + * Like KERN_CONT, pr_cont() should only be used when continuing
> + * a line with no newline ('\n') enclosed. Otherwise it defaults
> + * back to KERN_DEFAULT.
> + */

The first sentence is basically true though the
"enclosed" use is at best awkward.
Maybe "closing" or "terminating" is better.

There are still a few dozen uses of this pattern:

	pr_info("Some message line 1\nNext line: ");
	for (...)
		pr_cont(" part %d", i);
	pr_cont('\n");

The second sentence is not true.

KERN_DEFAULT is an odd-ball variable level that likely
could be removed altogether.  It's like a naked printk,
but if the last emitted char is not a newline, one is
prepended.

How about something like:

Use pr_cont() when continuing a message that does
not end in a '\n'.  Do not use pr_cont when continuing
a dynamic_debug type message.


  parent reply	other threads:[~2015-02-20 17:40 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-19 22:43 [PATCH 0/2] x86: fix output of show_stack_log_lvl Adrien Schildknecht
2015-02-19 22:43 ` [PATCH 1/2] x86: fix output of show_stack_log_lvl() Adrien Schildknecht
2015-02-20  0:06   ` Borislav Petkov
2015-02-19 22:43 ` [PATCH 2/2] x86: fix output of show_trace_log_lvl() Adrien Schildknecht
2015-02-20  2:34 ` [PATCH v2] x86: fix output of show_stack_log_lvl() Adrien Schildknecht
2015-02-20  4:45   ` Steven Rostedt
     [not found]     ` <CA+55aFzDt_7Rs9=4XFKo0LP4iBnV4qmJWUDACtBDbV4eRE-X9A@mail.gmail.com>
2015-02-20 17:05       ` Steven Rostedt
2015-02-20 17:35         ` Borislav Petkov
2015-02-20 17:40         ` Joe Perches [this message]
     [not found]           ` <CA+55aFx8pcoGzKuTubwzcBc-0=_Eoiu2n=Ub75PDuo8GkZvyng@mail.gmail.com>
2015-02-20 18:03             ` Joe Perches
2015-02-20 18:51               ` Linus Torvalds
2015-02-20 19:15                 ` Joe Perches
2015-02-20  8:10   ` Ingo Molnar
2015-02-20 10:38     ` Borislav Petkov
2015-02-20 16:39       ` Adrien Schildknecht
2015-03-03 11:28   ` [tip:x86/debug] x86/kernel: Fix " tip-bot for Adrien Schildknecht

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=1424454016.18211.8.camel@perches.com \
    --to=joe@perches.com \
    --cc=a.ryabinin@samsung.com \
    --cc=adech.fo@gmail.com \
    --cc=adrien+dev@schischi.me \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=fruggeri@arista.com \
    --cc=heukelum@fastmail.fm \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mingo@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox