NOHZ interaction between IPI-less kick_ilb() and nohz_csd_func().
From: Suleiman Souhlal
Date: Wed Sep 13 2023 - 08:49:21 EST
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