On Fri, 23 Mar 2018 12:50:16 -0700 Andrew Morton <a...@linux-foundation.org> wrote:
> On Fri, 23 Mar 2018 11:02:41 -0400 Steven Rostedt <rost...@goodmis.org> 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