[PATCH v3 5/6] powerpc/64/interrupt: reduce expensive debug tests
Christophe Leroy
christophe.leroy at csgroup.eu
Thu Sep 23 15:13:12 AEST 2021
Le 22/09/2021 à 16:54, Nicholas Piggin a écrit :
> Move the assertions requiring restart table searches under
> CONFIG_PPC_IRQ_SOFT_MASK_DEBUG.
>
> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
> ---
> arch/powerpc/include/asm/interrupt.h | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/interrupt.h b/arch/powerpc/include/asm/interrupt.h
> index e178d143671a..0e84e99af37b 100644
> --- a/arch/powerpc/include/asm/interrupt.h
> +++ b/arch/powerpc/include/asm/interrupt.h
> @@ -97,6 +97,11 @@ static inline void srr_regs_clobbered(void)
> local_paca->hsrr_valid = 0;
> }
> #else
> +static inline unsigned long search_kernel_restart_table(unsigned long addr)
> +{
> + return 0;
> +}
> +
Not sure you need that. Moving the 64s prototype out of the #ifdef would
do it as well.
> static inline bool is_implicit_soft_masked(struct pt_regs *regs)
> {
> return false;
> @@ -190,13 +195,14 @@ static inline void interrupt_enter_prepare(struct pt_regs *regs, struct interrup
> */
> if (TRAP(regs) != INTERRUPT_PROGRAM) {
> CT_WARN_ON(ct_state() != CONTEXT_KERNEL);
> - BUG_ON(is_implicit_soft_masked(regs));
> + if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
> + BUG_ON(is_implicit_soft_masked(regs));
> }
> -#ifdef CONFIG_PPC_BOOK3S
> +
> /* Move this under a debugging check */
> - if (arch_irq_disabled_regs(regs))
> + if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG) &&
> + arch_irq_disabled_regs(regs))
> BUG_ON(search_kernel_restart_table(regs->nip));
> -#endif
> }
> if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
> BUG_ON(!arch_irq_disabled_regs(regs) && !(regs->msr & MSR_EE));
>
More information about the Linuxppc-dev
mailing list