Re: [linux-next20260529] kernel BUG at kernel/sched/core.c:7512!
From: Peter Zijlstra <peterz@infradead.org>
Date: 2026-06-02 10:04:03
Also in:
lkml
From: Peter Zijlstra <peterz@infradead.org>
Date: 2026-06-02 10:04:03
Also in:
lkml
On Tue, Jun 02, 2026 at 03:26:11PM +0530, Shrikanth Hegde wrote:
quoted
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.