On Wed, Dec 18, 2019 at 06:26:06PM +0000, Ionela Voinescu wrote: > To be noted that this patch is a temporary one. It introduces the > interface added by the patches at [1] to allow update of the frequency > invariance scale factor based on counters. If [1] is merged there is > not need for this patch. > > For platforms that support counters (x86 - APERF/MPERF, arm64 - AMU > counters) the frequency invariance correction factor can be obtained > using a core counter and a fixed counter to get information on the > performance (frequency based only) obtained in a period of time. This > will more accurately reflect the actual current frequency of the CPU, > compared with the alternative implementation that reflects the request > of a performance level from the OS through the cpufreq framework > (arch_set_freq_scale). > > Therefore, introduce an interface - arch_scale_freq_tick, to be > implemented by each architecture and called for each CPU on the tick > to update the scale factor based on the delta in the counter values, > if counter support is present on the CPU. > > Either because reading counters is expensive or because reading > counters from remote CPUs is not possible or is expensive, only > update the counter based frequency scale factor on the tick for > now. A tick based update will definitely be necessary either due to > it being the only point of update for certain architectures or in > order to cache the counter values for a particular CPU, if a > further update from that CPU is not possible. > > [1] > https://lore.kernel.org/lkml/20191113124654.18122-1-ggherdovich@xxxxxxx/ FWIW, those patches just landed in tip/sched/core