lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 26 Mar 2018 18:50:32 -0700 From: "Joel Fernandes (Google)" <joel.opensrc@...il.com> To: Steven Rostedt <rostedt@...dmis.org> Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, Ingo Molnar <mingo@...nel.org>, Andrew Morton <akpm@...ux-foundation.org>, Frederic Weisbecker <fweisbec@...il.com>, Thomas Gleixner <tglx@...utronix.de>, Abderrahmane Benbachir <abderrahmane.benbachir@...ymtl.ca>, Américo Wang <xiyou.wangcong@...il.com>, Peter Zijlstra <peterz@...radead.org> Subject: Re: [PATCH 0/3] [RFC] init, tracing: Add initcall trace events Hi Steve, On Fri, Mar 23, 2018 at 8:02 AM, Steven Rostedt <rostedt@...dmis.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. > > 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. > > Instead of bringing back the boot tracer, adding trace events around the > initcall functions, and even one to denote which level the initcall > functions are being called from, adds the necessary information to > analyze the initcalls without the high overhead of printk()s, that > can substantially slow down the boot process. > > Another positive, is that the console initcall functions themselves > can also be traced. The timestamps are not operational at that time > but you can see which consoles are being registered. I saw this on > one of my test boxes: > > <idle>-0 [000] ...1 0.000000: initcall_level: level=console > <idle>-0 [000] ...1 0.000000: initcall_start: func=con_init+0x0/0x224 > <idle>-0 [000] ...1 0.000000: initcall_finish: func=con_init+0x0/0x224 ret=0 > <idle>-0 [000] ...1 0.000000: initcall_start: func=hvc_console_init+0x0/0x19 > <idle>-0 [000] ...1 0.000000: initcall_finish: func=hvc_console_init+0x0/0x19 ret=0 > <idle>-0 [000] ...1 0.000000: initcall_start: func=xen_cons_init+0x0/0x60 > <idle>-0 [000] ...1 0.000000: initcall_finish: func=xen_cons_init+0x0/0x60 ret=0 > <idle>-0 [000] ...1 0.000000: initcall_start: func=univ8250_console_init+0x0/0x2d > <idle>-0 [000] ...1 0.000000: initcall_finish: func=univ8250_console_init+0x0/0x2d ret=0 Will this make initcall_debug not work if CONFIG_TRACEPOINTS is turned off? Although it builds but I think this initcall_debug feature will fail, maybe CONFIG_TRACEPOINTS should be selected somewhere? I recently ran into some issues like this for my preemptirq tracepoints patch (which I will post again soon :D) where lockdep needed the tracepoints and I had to select it. thanks, - Joel
Powered by blists - more mailing lists