Re: NOHZ interaction between IPI-less kick_ilb() and nohz_csd_func().

From: Suleiman Souhlal
Date: Wed Sep 13 2023 - 10:32:05 EST


(I forgot to also add Vincent...)

On Wed, Sep 13, 2023 at 9:49 PM Suleiman Souhlal <suleiman@xxxxxxxxxx> wrote:
>
> Hello,
>
> I noticed that on x86 machines that have MWAIT, with NOHZ, when the
> kernel decides to kick the idle load balance on another CPU in
> kick_ilb(), there's an optimization that makes it avoid using an IPI
> and instead exploit the fact that the remote CPU is MWAITing on the
> thread_info flags, by just setting TIF_NEED_RESCHED, in
> call_function_single_prep_ipi().
> However, on the remote CPU, in nohz_csd_func(), we end up not raising
> the sched softirq due to NEED_RESCHED being set, so the ILB doesn't
> end up getting done.
>
> Is this intended?
>
> Thanks,
> -- Suleiman