Re: [PATCH 0/3] [RFC] init, tracing: Add initcall trace events

From: Steven Rostedt
Date: Fri Mar 23 2018 - 16:05:02 EST


On Fri, 23 Mar 2018 12:50:16 -0700
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Fri, 23 Mar 2018 11:02:41 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> > A while ago we had a boot tracer. But it was eventually removed:
> > commit 30dbb20e68e6f ("tracing: Remove boot tracer").
> >
> > The rational was because there is already a initcall_debug boot option
> > that causes printk()s of all the initcall functions.
>
> "rationale" :)

I hate English.

>
> > The problem with the initcall_debug option is that printk() is awfully slow,
> > and makes it difficult to see the real impact of initcalls. Mainly because
> > a single printk() is usually slower than most initcall functions.
>
> Not understanding this. We do it correctly:
>
> calltime = ktime_get();
> ret = fn();
> rettime = ktime_get();
>
> so the displayed initcall timing is independent of the printk()
> execution time?
>

It's not just the timing, it's the fact that init_debug printks disrupts
the boot process, where as tracing is less invasive to the
general runtime.

I would even argue that we remove the printks and use the trace events
instead. There's already an option to make trace events be sent to
printk(). I could have initcall_debug enable the trace events and send
them to printk.

-- Steve