Re: [linux-next20260529] kernel BUG at kernel/sched/core.c:7512!
From: Peter Zijlstra
Date: Tue Jun 02 2026 - 06:04:10 EST
On Tue, Jun 02, 2026 at 03:26:11PM +0530, Shrikanth Hegde wrote:
> > I would suggest trying something a little more focussed like so:
> >
> > diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
> > index 806c74e0d5ab..b002c179415c 100644
> > --- a/arch/powerpc/mm/fault.c
> > +++ b/arch/powerpc/mm/fault.c
> > @@ -589,6 +589,7 @@ static __always_inline void __do_page_fault(struct pt_regs *regs)
> > err = ___do_page_fault(regs, regs->dar, regs->dsisr);
> > if (unlikely(err))
> > bad_page_fault(regs, err);
> > + local_irq_disable();
> > }
> > DEFINE_INTERRUPT_HANDLER(do_page_fault)
> >
> > Since only ___do_page_fault() will enable interrupts, you only need to
> > disable them again on its return path.
> >
>
> Seems there are more...
>
> do_program_check (called by program_check_exception, emulation_assist_interrupt)
> alignment_exception
> SPEFloatingPointException
> facility_unavailable_exception
>
>
> Many looks like it can recover only if hit in userspace.
> Hence i though it would make sense to put it under arch_interrupt_exit_prepare
> which is called just before irqentry_exit.
Ah, fair enough.