summaryrefslogtreecommitdiffstats
path: root/arch/arc/kernel/head.S
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2020-11-07 01:59:27 +0100
committerVineet Gupta <vgupta@synopsys.com>2020-11-18 05:12:01 +0100
commite42404fa10fd11fe72d0a0e149a321d10e577715 (patch)
tree73cb2b6d39ef9db3fcc1a1be6d75714582ae3193 /arch/arc/kernel/head.S
parentARC: mm: fix spelling mistakes (diff)
downloadlinux-e42404fa10fd11fe72d0a0e149a321d10e577715.tar.xz
linux-e42404fa10fd11fe72d0a0e149a321d10e577715.zip
ARC: stack unwinding: don't assume non-current task is sleeping
To start stack unwinding (SP, PC and BLINK) are needed. When the explicit execution context (pt_regs etc) is not available, unwinder assumes the task is sleeping (in __switch_to()) and fetches SP and BLINK from kernel mode stack. But this assumption is not true, specially in a SMP system, when top runs on 1 core, there may be active running processes on all cores. So when unwinding non courrent tasks, ensure they are NOT running. And while at it, handle the self unwinding case explicitly. This came out of investigation of a customer reported hang with rcutorture+top Link: https://github.com/foss-for-synopsys-dwc-arc-processors/linux/issues/31 Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/kernel/head.S')
0 files changed, 0 insertions, 0 deletions