Re: [PATCH V3 1/2] topology: Allow multiple entities to provide sched_freq_tick() callback

From: Viresh Kumar
Date: Wed Feb 17 2021 - 06:46:41 EST


On 17-02-21, 11:30, Ionela Voinescu wrote:
> The problem is not topology_scale_freq_invariant() but whether a scale
> factor is set for some CPUs.
>
> Scenario (test system above):
> - "AMUs" are only supported for [1-2],
> - cpufreq_supports_freq_invariance() -> false
>
> What should happen:
> - topology_scale_freq_invariant() -> false (passed)
> - all CPUs should have their freq_scale unmodified (1024) - (failed)
> because only 2 out of 6 CPUs have a method of setting a scale factor
>
> What does happen:
> - arch_set_freq_tick() -> topology_set_freq_tick() will set a scale
> factor for [1-2] based on AMUs. This should not happen. We will end
> up with invariant signals for bigs and signals that are not freq
> invariant for littles.

Another case. cpufreq is included as a module and AMU is implemented
partially.

- first time cpufreq driver is inserted, we set up everything and
freq_scale gets updated on ticks.

- remove cpufreq driver, we are back in same situation.

We can't control it that way.. Or we add another call layer in middle
before the tick-handler gets called for AMU, which will check if we
are fully invariant or not ?

--
viresh