perf, arch: Cleanup perf-pmu init vs lockup-detector

The perf hardware pmu got initialized at various points in the boot,
some before early_initcall() some after (notably arch_initcall).

The problem is that the NMI lockup detector is ran from early_initcall()
and expects the hardware pmu to be present.

Sanitize this by moving all architecture hardware pmu implementations to
initialize at early_initcall() and move the lockup detector to an explicit
initcall right after that.

Cc: paulus <[email protected]>
Cc: davem <[email protected]>
Cc: Michael Cree <[email protected]>
Cc: Deng-Cheng Zhu <[email protected]>
Acked-by: Paul Mundt <[email protected]>
Acked-by: Will Deacon <[email protected]>
Signed-off-by: Peter Zijlstra <[email protected]>
LKML-Reference: <1290707759.2145.119.camel@laptop>
Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
Peter Zijlstra 2010-11-25 18:38:29 +01:00 • committed by Ingo Molnar
commit 004417a6d4
24 changed files with 38 additions and 42 deletions

View file

@ -882,6 +882,7 @@ static int __init kernel_init(void * unused)
smp_prepare_cpus(setup_max_cpus);
do_pre_smp_initcalls();
lockup_detector_init();
smp_init();
sched_init_smp();