On Wed Sep 21, 2022 at 4:56 PM AEST, Rohan McLure wrote: > Change system_call_exception arguments to pass a pointer to a stack frame > container caller state, as well as the original r0, which determines the > number of the syscall. This has been observed to yield improved performance > to passing them by registers, circumventing the need to allocate a stack > frame. > > Signed-off-by: Rohan McLure <rmcl...@linux.ibm.com>
Thanks for splitting it out, I think it does make it nicer to review. [...] > diff --git a/arch/powerpc/kernel/syscall.c b/arch/powerpc/kernel/syscall.c > index 15af0ed019a7..0e9ba3efee94 100644 > --- a/arch/powerpc/kernel/syscall.c > +++ b/arch/powerpc/kernel/syscall.c > @@ -13,9 +13,7 @@ > > > /* Has to run notrace because it is entered not completely "reconciled" */ > -notrace long system_call_exception(long r3, long r4, long r5, > - long r6, long r7, long r8, > - unsigned long r0, struct pt_regs *regs) > +notrace long system_call_exception(struct pt_regs *regs, unsigned long r0) > { > long ret; > syscall_fn f; > @@ -136,12 +134,6 @@ notrace long system_call_exception(long r3, long r4, > long r5, > r0 = do_syscall_trace_enter(regs); > if (unlikely(r0 >= NR_syscalls)) > return regs->gpr[3]; > - r3 = regs->gpr[3]; > - r4 = regs->gpr[4]; > - r5 = regs->gpr[5]; > - r6 = regs->gpr[6]; > - r7 = regs->gpr[7]; > - r8 = regs->gpr[8]; > > } else if (unlikely(r0 >= NR_syscalls)) { > if (unlikely(trap_is_unsupported_scv(regs))) { > -- > 2.34.1 This is probably just missing the hunk + ret = f(regs->gpr[3], regs->gpr[4], regs->gpr[5], + regs->gpr[6], regs->gpr[7], regs->gpr[8]); which got into your next patch. Otherwise I think it looks good. Reviewed-by: Nicholas Piggin <npig...@gmail.com>