* [Patch -tip 4/4] Tracing/ftrace: Launch initcall tracing after pre-smp initcalls.
@ 2008-09-23 10:38 Frédéric Weisbecker
0 siblings, 0 replies; only message in thread
From: Frédéric Weisbecker @ 2008-09-23 10:38 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Steven Rostedt, Steven Noonan, Arjan van de Ven
[-- Attachment #1: Type: text/plain, Size: 222 bytes --]
Launch the initcall tracing inside the initcall_debug area. Old printk have not been
removed to keep the old way of initcall tracing for backward compatibility.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
---
[-- Attachment #2: patch4.diff --]
[-- Type: text/plain, Size: 1051 bytes --]
diff --git a/init/main.c b/init/main.c
index a9e36fb..a90d4f5 100644
--- a/init/main.c
+++ b/init/main.c
@@ -724,9 +724,12 @@ int do_one_initcall(initcall_t fn)
ktime_t t0, t1, delta;
char msgbuf[64];
int result;
+ struct initcall_trace it;
if (initcall_debug) {
- printk("calling %pF @ %i\n", fn, task_pid_nr(current));
+ it.caller = task_pid_nr(current);
+ it.func = fn;
+ printk("calling %pF @ %i\n", fn, it.caller);
t0 = ktime_get();
}
@@ -735,9 +738,11 @@ int do_one_initcall(initcall_t fn)
if (initcall_debug) {
t1 = ktime_get();
delta = ktime_sub(t1, t0);
-
+ it.result = result;
+ it.duration = (unsigned long long) delta.tv64 >> 20;
printk("initcall %pF returned %d after %Ld msecs\n", fn,
- result, (unsigned long long) delta.tv64 >> 20);
+ result, it.duration);
+ trace_initcall(&it);
}
msgbuf[0] = 0;
@@ -947,6 +952,7 @@ static int __init kernel_init(void * unused)
smp_prepare_cpus(setup_max_cpus);
do_pre_smp_initcalls();
+ start_initcall_trace();
smp_init();
sched_init_smp();
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2008-09-23 9:32 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-23 10:38 [Patch -tip 4/4] Tracing/ftrace: Launch initcall tracing after pre-smp initcalls Frédéric Weisbecker
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.