[PATCH] powerpc/kernel: Make syscall_exit a local label

David Laight David.Laight at ACULAB.COM
Fri Dec 5 21:27:22 AEDT 2014


From: Michael Ellerman
> Currently when we back trace something that is in a syscall we see
> something like this:
> 
> [c000000000000000] [c000000000000000] SyS_read+0x6c/0x110
> [c000000000000000] [c000000000000000] syscall_exit+0x0/0x98
> 
> Although it's entirely correct, seeing syscall_exit at the bottom can be
> confusing - we were exiting from a syscall and then called SyS_read() ?
> 
> If we instead change syscall_exit to be a local label we get something
> more intuitive:
> 
> [c0000001fa46fde0] [c00000000026719c] SyS_read+0x6c/0x110
> [c0000001fa46fe30] [c000000000009264] system_call+0x38/0xd0
> 
> ie. we were handling a system call, and it was SyS_read().
> 
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
> ---
>  arch/powerpc/kernel/entry_64.S | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
> index 0905c8da90f1..d8828e50dbef 100644
> --- a/arch/powerpc/kernel/entry_64.S
> +++ b/arch/powerpc/kernel/entry_64.S
> @@ -178,7 +178,7 @@ system_call:			/* label this so stack traces look sane */
>  	mtctr   r12
>  	bctrl			/* Call handler */

Why not add a 'nop' here instead?

> -syscall_exit:
> +.Lsyscall_exit:
>  	std	r3,RESULT(r1)
>  #ifdef SHOW_SYSCALLS
>  	bl	do_show_syscall_exit
> @@ -270,7 +270,7 @@ syscall_dotrace:
...

	David



More information about the Linuxppc-dev mailing list