Re: [PATCH v4] sched/freq: move call to cpufreq_update_util

From: Peter Zijlstra
Date: Fri Nov 15 2019 - 08:02:25 EST


On Fri, Nov 15, 2019 at 12:03:31PM +0100, Vincent Guittot wrote:

> This patch does 2 things:
> - fix the spurious call to cpufreq just before attaching a task

Right, so that one doesn't concern me too much.

> - make sure cpufreq is still called when cfs is 0 but not irq/rt or dl

But per the rq->has_blocked_load logic we would mostly stop sending
events once we reach all 0s.

Now, most of those updates will be through _nohz_idle_balance() ->
update_nohz_stats(), which are remote, which means intel_pstate is
ignoring them anyway.

Now the _nohz_idle_balance() -> update_blocked_averages() thing runs
local, and that will update the one random idle CPU we picked to run
nohz balance, but all others will be left where they were.

So why does intel_pstate care... Esp. on SKL+ with per-core P state this
is of dubious value.

Also, and maybe I should go read back, why do we care what the P state
is when we're mostly in C states anyway? These are all idle CPUs,
otherwise we wouldkn't be running update_blocked_averages() on them
anyway.


Much confusion..