[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABCjUKBXPLNaBjELHqz=Oke_JsxXLQauTWrsNmTp3KToW3-9MQ@mail.gmail.com>
Date: Wed, 13 Sep 2023 21:49:07 +0900
From: Suleiman Souhlal <suleiman@...gle.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Ingo Molnar <mingo@...hat.com>, Juri Lelli <juri.lelli@...hat.com>,
Linux Kernel <linux-kernel@...r.kernel.org>,
Steven Rostedt <rostedt@...gle.com>,
Joel Fernandes <joelaf@...gle.com>,
Vineeth Pillai <vineethrp@...gle.com>,
Youssef Esmat <youssefesmat@...gle.com>
Subject: NOHZ interaction between IPI-less kick_ilb() and nohz_csd_func().
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
Powered by blists - more mailing lists