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 <m...@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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev