All of lore.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 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.