Re: [PATCH v2] MIPS: smp: report dying CPU to RCU in stop_this_cpu()
From: Huacai Chen
Date: Mon Jun 15 2026 - 03:34:42 EST
On Mon, Jun 15, 2026 at 3:16 PM Jonas Jelonek <jelonek.jonas@xxxxxxxxx> wrote:
>
> Hi Huacai,
>
> On 15.06.26 09:09, Huacai Chen wrote:
> > On Mon, Jun 15, 2026 at 3:00 PM Jonas Jelonek <jelonek.jonas@xxxxxxxxx> wrote:
> >> Hi Huacai,
> >>
> >> sorry for the reply delay.
> >>
> >> On 10.06.26 08:05, Huacai Chen wrote:
> >>> [...]
> >>> In theory LoongArch has the same problem, but I cannot reproduce,
> >>> should I enable PREEMPT_RT? Or there are some special configurations?
> >> Sadly I cannot help with that. For MIPS, this seems to be the default
> >> behavior.
> > This patch fixes 91840be8f710, and 91840be8f710 adds synchronize_rcu()
> > in irq_work_sync(). Your problem is caused by this synchronize_rcu(),
> > right?
>
> Yes it is.
>
> > However, synchronize_rcu() only gets called in the
> > IS_ENABLED(CONFIG_PREEMPT_RT) case, so I think your configuration
> > needs PREEMPT_RT, right?
> >
> > You said this is the default behavior, but PREEMPT_RT is not enabled by default.
>
> The condition where this is added has two parts, see [1]. While PREEMPT_RT
> isn't active for MIPS, arch_irq_work_has_interrupt gives false for MIPS (since
> there is no implementation and it falls back to the generic one). This then
> also calls synchronize_rcu.
Sorry, this is my mistake, then what's your preemption model? There
are too many config files for MIPS now.
Huacai
>
> > Huacai
> >
>
> Best,
> Jonas
>
> [1] https://elixir.bootlin.com/linux/v7.1-rc7/source/kernel/irq_work.c#L291-L302