Nicholas Piggin <npig...@gmail.com> writes: > System call entry and particularly exit code is beyond the limit of what > is reasonable to implement in asm. > > This conversion moves all conditional branches out of the asm code, > except for the case that all GPRs should be restored at exit. > > Null syscall test is about 5% faster after this patch, because the exit > work is handled under local_irq_disable, and the hard mask and pending > interrupt replay is handled after that, which avoids games with MSR. > > Signed-off-by: Nicholas Piggin <npig...@gmail.com> > --- > Since v1: > - Fix big endian build (mpe) > - Fix order of exit tracing to after the result registers have been set. > - Move ->softe store before MSR[EE] is set, fix the now obsolete comment. > - More #ifdef tidyups and writing the accounting helpers nicer (Christophe) > - Minor things like move the TM debug store into C
This doesn't build in a few configs. It needed: +#else +static inline void kuap_check_amr(void) { } In kup-radix.h to fix the KUAP=n build. It still fails to build on ppc64e with: arch/powerpc/kernel/syscall_64.c:161:2: error: implicit declaration of function '__mtmsrd' [-Werror=implicit-function-declaration] http://kisskb.ellerman.id.au/kisskb/buildresult/13946972/ Which I haven't debugged yet. cheers