[Skiboot] [PATCH] asm: Fix backtrace for unexpected exception

Balbir Singh bsingharora at gmail.com
Tue Aug 2 22:09:23 AEST 2016

On Tue, 2016-08-02 at 16:46 +1000, Michael Neuling wrote:
> If we take an unknown exception at boot time we attempt to put the
> exception vector in the back trace, The result looks like this (when
> we take an 0x700):
>  S: 0000000031e838a0 R: 000000003001365c   .backtrace+0x38
>  S: 0000000031e83930 R: 00000000300186cc   ._abort+0x4c
>  S: 0000000031e839b0 R: 0000000030023a78   .exception_entry+0x114
>  S: 0000000031e83a40 R: 0000000000001f04 * +0x1f04
>  S: 0000000031e83c10 R: 0000000000000700 * +0x700
>  S: 0000000031e83e30 R: 0000000030014444   .main_cpu_entry+0x444
>  S: 0000000031e83f00 R: 000000003000259c   boot_entry+0x19c
> We overwrite link address in the current stack frame with the
> exception vector (ie. 0x700 in the above example). Unfortunately this
> overrides the location that caused the exception, which is much more
> useful information in debugging the problem.
> This patch removes the writing link register in the current stack
> frame, so the back trace now looks like this:
>  S: 0000000031da38a0 R: 000000003001365c   .backtrace+0x38
>  S: 0000000031da3930 R: 00000000300186cc   ._abort+0x4c
>  S: 0000000031da39b0 R: 0000000030023a78   .exception_entry+0x114
>  S: 0000000031da3a40 R: 0000000000001f00 * +0x1f00
>  S: 0000000031da3c10 R: 00000000300323f8   .psi_init+0x1f4
>  S: 0000000031da3e30 R: 0000000030014444   .main_cpu_entry+0x444
>  S: 0000000031da3f00 R: 000000003000259c   boot_entry+0x19c
> This loses the exception vector from the back trace, but this
> information is already available in the exception dump just above it
> Suggestion by benh.
> Signed-off-by: Michael Neuling <mikey at neuling.org>
> ---

Acked-by: Balbir Singh <bsingharora at gmail.com>

More information about the Skiboot mailing list