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

From: Ingo Molnar
Date: Fri Nov 10 2017 - 02:25:28 EST



* Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> wrote:

> Hi Linus,
>
> On 11/9/2017 11:38 AM, WANG Chao wrote:
> > Commit 941f5f0f6ef5 (x86: CPU: Fix up "cpu MHz" in /proc/cpuinfo) caused
> > a serious performance issue when reading from /proc/cpuinfo on system
> > with aperfmperf.
> >
> > For each cpu, arch_freq_get_on_cpu() sleeps 20ms to get its frequency.
> > On a system with 64 cpus, it takes 1.5s to finish running `cat
> > /proc/cpuinfo`, while it previously was done in 15ms.
>
> Honestly, I'm not sure what to do to address this ATM.
>
> The last requested frequency is only available in the non-HWP case, so it
> cannot be used universally.

This is a serious regression that needs to be fixed ASAP, because the slowdown is
utterly ridiculous on a 120 CPU system:

fomalhaut:~> time cat /proc/cpuinfo >/dev/null

real 0m2.689s
user 0m0.001s
sys 0m0.007s

Thanks,

Ingo