Christophe Leroy <christophe.le...@csgroup.eu> writes: > Le 25/08/2021 à 07:27, Michael Ellerman a écrit : >> Christophe Leroy <christophe.le...@csgroup.eu> writes: >>> In those hot functions that are called at every interrupt, any saved >>> cycle is worth it. >>> >>> interrupt_exit_user_prepare() and interrupt_exit_kernel_prepare() are >>> called from three places: >>> - From entry_32.S >>> - From interrupt_64.S >>> - From interrupt_exit_user_restart() and interrupt_exit_kernel_restart() >>> >>> In entry_32.S, there are inambiguously called based on MSR_PR: >>> >>> interrupt_return: >>> lwz r4,_MSR(r1) >>> addi r3,r1,STACK_FRAME_OVERHEAD >>> andi. r0,r4,MSR_PR >>> beq .Lkernel_interrupt_return >>> bl interrupt_exit_user_prepare >>> ... >>> .Lkernel_interrupt_return: >>> bl interrupt_exit_kernel_prepare >>> >>> In interrupt_64.S, that's similar: >>> >>> interrupt_return_\srr\(): >>> ld r4,_MSR(r1) >>> andi. r0,r4,MSR_PR >>> beq interrupt_return_\srr\()_kernel >>> interrupt_return_\srr\()_user: /* make backtraces match the _kernel >>> variant */ >>> addi r3,r1,STACK_FRAME_OVERHEAD >>> bl interrupt_exit_user_prepare >>> ... >>> interrupt_return_\srr\()_kernel: >>> addi r3,r1,STACK_FRAME_OVERHEAD >>> bl interrupt_exit_kernel_prepare >>> >>> In interrupt_exit_user_restart() and interrupt_exit_kernel_restart(), >>> MSR_PR is verified respectively by BUG_ON(!user_mode(regs)) and >>> BUG_ON(user_mode(regs)) prior to calling interrupt_exit_user_prepare() >>> and interrupt_exit_kernel_prepare(). >>> >>> The verification in interrupt_exit_user_prepare() and >>> interrupt_exit_kernel_prepare() are therefore useless and can be removed. >>> >>> Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu> >>> Acked-by: Nicholas Piggin <npig...@gmail.com> >>> --- >>> arch/powerpc/kernel/interrupt.c | 2 -- >>> 1 file changed, 2 deletions(-) >> >> I'll pick this one up independent of the other two patches. > > Second patch should be ok as well, no ?
Yeah I guess. I'm not sure if we'll want to keep cpu_has_msr_ri() if we have a CONFIG_PPC_MSR_RI, but that's a pretty minor detail. So yeah I'll take patch 2 as well. cheers