tracing/ftrace: don't trace on early stage of a secondary cpu boot, v3
authorFrederic Weisbecker <fweisbec@gmail.com>
Wed, 24 Dec 2008 22:30:02 +0000 (23:30 +0100)
committerIngo Molnar <mingo@elte.hu>
Thu, 25 Dec 2008 08:39:22 +0000 (09:39 +0100)
commit0ca59dd948a51c95d5a366d35f897bc5ef9df55d
treea5b2cdcd127edb7855a7ec1d7f5fdfc5bee49f55
parent3ddeb912f41801fd1968c7880d031702a396e4d0
tracing/ftrace: don't trace on early stage of a secondary cpu boot, v3

Impact: fix a crash/hard-reboot on certain configs while enabling cpu runtime

On some archs, the boot of a secondary cpu can have an early fragile state.
On x86-64, the pda is not initialized on the first stage of a cpu boot but
it is needed to get the cpu number and the current task pointer. This data
is needed during tracing. As they were dereferenced at this stage, we got a
crash while tracing a cpu being enabled at runtime.

Some other archs like ia64 can have such kind of issue too.

Changes on v2:

We dropped the previous solution of a per-arch called function to guess the
current state of a cpu. That could slow down the tracing.

This patch removes the -pg flag on arch/x86/kernel/cpu/common.c where
the low level cpu boot functions exist, on start_secondary() and a helper
function used at this stage.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/msr.h
arch/x86/kernel/cpu/Makefile
arch/x86/kernel/smpboot.c