diff options
Diffstat (limited to 'init/main.c')
-rw-r--r-- | init/main.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/init/main.c b/init/main.c index 16abba05c826..1e39a1eab190 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -709,10 +709,12 @@ int do_one_initcall(initcall_t fn) | |||
709 | ktime_t t0, t1, delta; | 709 | ktime_t t0, t1, delta; |
710 | char msgbuf[64]; | 710 | char msgbuf[64]; |
711 | int result; | 711 | int result; |
712 | struct boot_trace it; | ||
712 | 713 | ||
713 | if (initcall_debug) { | 714 | if (initcall_debug) { |
714 | printk("calling %pF", fn); | 715 | it.caller = task_pid_nr(current); |
715 | printk(" @ %i\n", task_pid_nr(current)); | 716 | it.func = fn; |
717 | printk("calling %pF @ %i\n", fn, it.caller); | ||
716 | t0 = ktime_get(); | 718 | t0 = ktime_get(); |
717 | } | 719 | } |
718 | 720 | ||
@@ -721,10 +723,11 @@ int do_one_initcall(initcall_t fn) | |||
721 | if (initcall_debug) { | 723 | if (initcall_debug) { |
722 | t1 = ktime_get(); | 724 | t1 = ktime_get(); |
723 | delta = ktime_sub(t1, t0); | 725 | delta = ktime_sub(t1, t0); |
724 | 726 | it.result = result; | |
725 | printk("initcall %pF returned %d after %Ld msecs\n", | 727 | it.duration = (unsigned long long) delta.tv64 >> 20; |
726 | fn, result, | 728 | printk("initcall %pF returned %d after %Ld msecs\n", fn, |
727 | (unsigned long long) delta.tv64 >> 20); | 729 | result, it.duration); |
730 | trace_boot(&it); | ||
728 | } | 731 | } |
729 | 732 | ||
730 | msgbuf[0] = 0; | 733 | msgbuf[0] = 0; |
@@ -859,6 +862,7 @@ static int __init kernel_init(void * unused) | |||
859 | smp_prepare_cpus(setup_max_cpus); | 862 | smp_prepare_cpus(setup_max_cpus); |
860 | 863 | ||
861 | do_pre_smp_initcalls(); | 864 | do_pre_smp_initcalls(); |
865 | start_boot_trace(); | ||
862 | 866 | ||
863 | smp_init(); | 867 | smp_init(); |
864 | sched_init_smp(); | 868 | sched_init_smp(); |