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

From: WANG Chao
Date: Fri Nov 10 2017 - 04:29:01 EST


On 11/10/17 at 08:25P, Ingo Molnar wrote:
>
> * 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

Because 4.14 is about to release, how about adding this patch to 4.14
now? We can work on a more sophisticated solution later.

Thanks,
WANG Chao