linux/arch/x86
Frederic Weisbecker 0ca59dd948 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>
2008-12-25 09:39:22 +01:00
..
boot x86: use limited register constraint for setnz 2008-11-25 15:38:03 +01:00
configs x86: remove irqbalance in kernel for 32 bit 2008-10-16 16:52:52 +02:00
crypto crypto: crc32c - Use Intel CRC32 instruction 2008-08-29 15:49:50 +10:00
ia32 compat: generic compat get/settimeofday 2008-10-16 11:21:33 -07:00
include/asm tracing/ftrace: don't trace on early stage of a secondary cpu boot, v3 2008-12-25 09:39:22 +01:00
kernel tracing/ftrace: don't trace on early stage of a secondary cpu boot, v3 2008-12-25 09:39:22 +01:00
kvm KVM: MMU: avoid creation of unreachable pages in the shadow 2008-11-26 12:34:27 +02:00
lguest lguest: fix irq vectors. 2008-10-31 11:24:28 +11:00
lib Merge branch 'x86/unify-cpu-detect' into x86-v28-for-linus-phase4-D 2008-10-11 20:23:20 +02:00
mach-default Merge branches 'x86/prototypes', 'x86/x2apic' and 'x86/debug' into x86/core 2008-08-14 14:58:22 +02:00
mach-generic x86: make 32bit support per_cpu vector 2008-10-16 16:52:53 +02:00
mach-rdc321x removed unused #include <linux/version.h>'s 2008-08-23 12:14:12 -07:00
mach-voyager x86, voyager: fix smp generic helper voyager breakage 2008-11-11 12:08:53 +01:00
math-emu
mm Merge commit 'v2.6.28-rc7'; branch 'x86/dumpstack' into tracing/ftrace 2008-12-03 08:55:34 +01:00
oprofile x86/oprofile: fix Intel cpu family 6 detection 2008-12-03 17:17:17 +01:00
pci x86: fixup config space size of CPU functions for AMD family 11h 2008-11-26 03:53:27 +01:00
power x86, hibernate: fix breakage on x86_32 with CONFIG_NUMA set 2008-11-12 23:28:51 +01:00
vdso trace: rename unlikely profiler to branch profiler 2008-11-12 22:27:58 +01:00
video
xen Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-11-30 13:01:04 -08:00
Kconfig tracing/function-graph-tracer: support for x86-64 2008-12-02 09:47:48 +01:00
Kconfig.cpu x86, bts, ftrace: a BTS ftrace plug-in prototype 2008-11-25 17:31:13 +01:00
Kconfig.debug trace: add the MMIO-tracer to the tracer menu, cleanup 2008-10-27 14:07:26 +01:00
Makefile x86, um: ... and asm-x86 move 2008-10-22 22:55:20 -07:00
Makefile_32.cpu x86: merge winchip-2 and winchip-2a cpu choices 2008-10-13 10:22:48 +02:00