Subject: Re: [linux-next][s390] Boot hang after merge c50f05bd3c4e (sched/hrtick)

From: Heiko Carstens <[email-masked]>
Date: Thu, 5 Mar 2026 20:48:21 +0100

On Thu, Mar 05, 2026 at 06:24:48PM +0100, Mikhail Zaslonko wrote:
> >> Another change is that you clear I and E in the PSW bit before
> >> irq_enter_rcu(), which, per:
> >>
> >>   7e641e52cf5f ("softirq: Prepare for deferred hrtimer rearming")
> >>
> >> can re-arm the timer.
> >>
> >> So where previously it would re-arm and still have the I/E bits set, so
> >> the timer could fire, they are now disabled.
> >>
> >> I really don't know if this is a problem; I'm clutching at s390 straws
> >> here that I really don't know much about.
> > 
> > That's the old PSW where the interrupt happened, not the one with which the
> > CPU is running with, and shouldn't have any effect.
> > 
> > ...but reverting that commit actually does fix it for me. 
> 
> For me it doesn't. But reverting this one helps:
> 15dd3a948855 ("hrtimer: Push reprogramming timers into the interrupt return path")

Mikhail, which commit did you revert? The above discussion is about commit
d8b5cf9c6314 ("s390/irq/idle: Remove psw bits early"), which is not
explicitly mentioned.

But it is indeed broken: irqentry_exit() has a regs_irqs_disabled() check,
which I broke with this commit - but "only" for idle exit.
Result: no hrtimer_rearm_deferred() being called on idle exit.

Oh well. Peter, thanks for pointing to this broken commit. Will be reverted.