On Mon, 2022-10-10 at 16:26 -0600, Jason A. Donenfeld wrote: > > Bisected: > > 7e92e01b724526b98cbc7f03dd4afa0295780d56 is the first bad commit > commit 7e92e01b724526b98cbc7f03dd4afa0295780d56 > Author: Rohan McLure <rmcl...@linux.ibm.com> > Date: Wed Sep 21 16:56:01 2022 +1000 > > powerpc: Provide syscall wrapper > > Implement syscall wrapper as per s390, x86, arm64. When enabled > cause handlers to accept parameters from a stack frame rather > than > from user scratch register state. This allows for user registers > to be > safely cleared in order to reduce caller influence on speculation > within syscall routine. The wrapper is a macro that emits syscall > handler symbols that call into the target handler, obtaining its > parameters from a struct pt_regs on the stack. > > As registers are already saved to the stack prior to calling > system_call_exception, it appears that this function is executed > more > efficiently with the new stack-pointer convention than with > parameters > passed by registers, avoiding the allocation of a stack frame for > this > method. On a 32-bit system, we see >20% performance increases on > the > null_syscall microbenchmark, and on a Power 8 the performance > gains > amortise the cost of clearing and restoring registers which is > implemented at the end of this series, seeing final result of > ~5.6% > performance improvement on null_syscall. > > Syscalls are wrapped in this fashion on all platforms except for > the > Cell processor as this commit does not provide SPU support. This > can be > quickly fixed in a successive patch, but requires > spu_sys_callback to > allocate a pt_regs structure to satisfy the wrapped calling > convention. > > Co-developed-by: Andrew Donnellan <a...@linux.ibm.com> > Signed-off-by: Andrew Donnellan <a...@linux.ibm.com> > Signed-off-by: Rohan McLure <rmcl...@linux.ibm.com> > Reviewed-by: Nicholas Piggin <npig...@gmai.com> > [mpe: Make incompatible with COMPAT to retain clearing of high > bits of args] > Signed-off-by: Michael Ellerman <m...@ellerman.id.au> > Link: > https://lore.kernel.org/r/20220921065605.1051927-22-rmcl...@linux.ibm.com
Thanks for bisecting, this is interesting! Could you provide your .config and the environment you're running in? Your reproducer doesn't seem to trigger it on my baremetal POWER8 pseries_le_defconfig. -- Andrew Donnellan OzLabs, ADL Canberra a...@linux.ibm.com IBM Australia Limited