]> git.ipfire.org Git - people/arne_f/kernel.git/commit
powerpc/64: Save stack pointer when we hard disable interrupts
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 2 May 2018 13:07:26 +0000 (23:07 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 3 Jun 2018 10:43:42 +0000 (20:43 +1000)
commit7b08729cb272b4cd5c657cd5ac0dddae15a593ff
treec6f727c760e0bc39cf30aae936b5aa0f63ada55d
parent3e3786801b701cf03ee028fca786848d4865563e
powerpc/64: Save stack pointer when we hard disable interrupts

A CPU that gets stuck with interrupts hard disable can be difficult to
debug, as on some platforms we have no way to interrupt the CPU to
find out what it's doing.

A stop-gap is to have the CPU save it's stack pointer (r1) in its paca
when it hard disables interrupts. That way if we can't interrupt it,
we can at least trace the stack based on where it last disabled
interrupts.

In some cases that will be total junk, but the stack trace code should
handle that. In the simple case of a CPU that disable interrupts and
then gets stuck in a loop, the stack trace should be informative.

We could clear the saved stack pointer when we enable interrupts, but
that loses information which could be useful if we have nothing else
to go on.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
arch/powerpc/include/asm/hw_irq.h
arch/powerpc/include/asm/paca.h
arch/powerpc/kernel/exceptions-64s.S
arch/powerpc/xmon/xmon.c