On Wed, Mar 22, 2017 at 10:29 AM, Peter Zijlstra <[email protected]> wrote: > On Wed, Mar 22, 2017 at 01:56:53AM +0100, Rafael J. Wysocki wrote: >> From: Rafael J. Wysocki <[email protected]> >> >> sugov_update_commit() calls trace_cpu_frequency() to record the >> current CPU frequency if it has not changed in the fast switch case >> to prevent utilities from getting confused (they may report that the >> CPU is idle if the frequency has not been recorded for too long, for >> example). > > That seems like buggy tools; we should then fix the tools, not the > kernel to emit more superfluous information. > >> However, the same problem may occur for a cpufreq driver that doesn't >> support fast frequency switching and implements the ->target callback >> (that is, it doesn't use frequency tables), but trace_cpu_frequency() >> is not called if frequency updates are skipped in that case. > > I'm having trouble parsing that; am I right in understanding this is the > exact same scenario where only superfluous changes are omitted?
Yes, that's the same scenario basically, which is the point of the patch. :-) >> For this reason, modify sugov_update_commit() to always call >> trace_cpu_frequency() when the new frequency to be set is equal to >> the one that was set previously and reorganize the code in there to >> reduce duplication somewhat. > > So why not fix the tools? Because I can't. I just can't go and fix all of the tools binaries that people use out there and I want them to use recent kernels at the same time. But anyway, I think that the code with the patch looks better than without it regardless and having a frivolous difference there between the two cases is not useful.

