Re: [PATCH] x86: use cpufreq_quick_get() for /proc/cpuinfo "cpu MHz" again

From: Rafael J. Wysocki
Date: Fri Nov 10 2017 - 18:09:35 EST


On Fri, Nov 10, 2017 at 8:11 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, Nov 9, 2017 at 2:30 PM, Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
>>
>> c_start() can run aperfmperf_snapshot_khz() on all CPUs upfront (say
>> in parallel), then wait for a while (say 5 ms; the current 20 ms wait
>> is overkill) and then aperfmperf_snapshot_khz() can be run once on
>> each CPU in show_cpuinfo() without taking the "stale cache" threshold
>> into account.
>
> Yeah, that won't work.

Indeed.

> What could work is to do that "smp_call_function_many()" at open time,
> and *not* set the "wait" flag, but do it entirely asynchronously.

Right.

> But I don't think that's an option for 4.14 ;(

Agreed.

> So I guess I'll have to revert.

Sure thing (and I see that you've reverted it already).

The reason why I wanted to fix this up before the final 4.14 is that
the "cpu MHz" behavior is kind of inconsistent now (generally, it is
either constant or the last requested frequency depending on the
cpufreq configuration), but that's not a blocker by any measure IMO.

Anyway, I'll try to come up with something better next week.

Thanks,
Rafael