Re: [PATCH] printk: git rid of [sched_delayed] message for printk_deferred
From: Jan Kara
Date: Tue Sep 16 2014 - 17:23:00 EST
On Tue 16-09-14 17:07:09, Steven Rostedt wrote:
> On Tue, 16 Sep 2014 22:35:10 +0200
> Jan Kara <jack@xxxxxxx> wrote:
>
> > On Tue 16-09-14 11:13:31, Steven Rostedt wrote:
> > > On Tue, 16 Sep 2014 16:42:52 +0200
> > > Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx> wrote:
> > >
> > > > commit 458df9fd hardcodes printk_deferred() to KERN_WARNING and inserts
> > > > the string "[sched_delayed] " before the actual message.
> > > > However it doesn't take into account the KERN_* prefix of the message,
> > > > that now ends up in the middle of the output:
> > > >
> > > > [sched_delayed] ^a4CE: hpet increased min_delta_ns to 20115 nsec
> > > >
> > > > Fix this by just getting rid of the "[sched_delayed] " scnprintf().
> > >
> > > I prefer the "[sched_delayed]" output. It lets us know that the output
> > > did not come out immediately, which is important sometimes during
> > > debugging. Otherwise it can confuse people, as printk is suppose to be
> > > a blocking write.
> > This is a common misconception about printk. It isn't a blocking write
> > for ten years or more. If there happens to be someone else printing to
> > console, the difference between printk() and printk_deferred() is
> > marginal - it used to be bigger when scheduler had its own buffer but these
> > days message is inserted in the kernel ring buffer immediately. That's why
> > I don't think the prefix is useful anymore.
>
> For the most part it's a blocking write. Yeah, if another CPU is
> writing, it wont be a blocking write, but it usually is, I know I
> depend on it (when I'm debugging, I usually don't have contention
> between CPUs). The important part is that they are done in order. A
> delayed print, wont be in order with other printks. That is still a
> crucial difference.
printk_deffered() will be in order with other printks after your commit
458df9fd4815b47809875d57f42e16401674b621. Just printing to console itself
will be delayed to the next timer interrupt. Or am I missing something?
Honza
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/