summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/ppc_save_regs.S
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2012-01-09 14:29:15 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-01-11 11:54:20 +1100
commita5ccfee05a439b803640e94584056204501db31c (patch)
tree2545bab092fe62924d5ccba8920c137b1e771ba6 /arch/powerpc/kernel/ppc_save_regs.S
parent7b3480f8b701170c046e1ed362946f5f0d005e13 (diff)
downloadblackbird-op-linux-a5ccfee05a439b803640e94584056204501db31c.tar.gz
blackbird-op-linux-a5ccfee05a439b803640e94584056204501db31c.zip
powerpc: Fix RCU idle and hcall tracing
Tracepoints should not be called inside an rcu_idle_enter/rcu_idle_exit region. Since pSeries calls H_CEDE in the idle loop, we were violating this rule. commit a7b152d5342c (powerpc: Tell RCU about idle after hcall tracing) tried to work around it by delaying the rcu_idle_enter until after we called the hcall tracepoint, but there are a number of issues with it. The hcall tracepoint trampoline code is called conditionally when the tracepoint is enabled. If the tracepoint is not enabled we never call rcu_idle_enter. The idle_uses_rcu check was also done at compile time which breaks multiplatform builds. The simple fix is to avoid tracing H_CEDE and rely on other tracepoints and the hypervisor dispatch trace log to work out if we called H_CEDE. This fixes a hang during boot on pSeries. Signed-off-by: Anton Blanchard <anton@samba.org> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/ppc_save_regs.S')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud