On Fri, 2021-01-08 at 19:05 +0100, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <[email protected]> > > On x86 scale invariace tends to be disabled during resume from > suspend-to-RAM, because the MPERF or APERF MSR values are not as > expected then due to updates taking place after the platform > firmware has been invoked to complete the suspend transition. > > That, of course, is not desirable, especially if the schedutil > scaling governor is in use, because the lack of scale invariance > causes it to be less reliable. > > To counter that effect, modify init_freq_invariance() to register > a syscore_ops object for scale invariance with the ->resume callback > pointing to init_counter_refs() which will run on the CPU starting > the resume transition (the other CPUs will be taken care of the > "online" operations taking place later). > > Fixes: e2b0d619b400 ("x86, sched: check for counters overflow in frequency > invariant accounting") > Signed-off-by: Rafael J. Wysocki <[email protected]> > <snip>
Thanks for writing this, Rafael. Peter Zijlstra asked to fix this problem months ago; I started but got stucked and never finished. Giovanni Gherdovich

