Re: intel_pstate: Lowest frequency not reached with Intel i7-6700

From: Srinivas Pandruvada
Date: Thu Dec 13 2018 - 11:36:45 EST


On Thu, 2018-12-13 at 13:41 +0100, Paul Menzel wrote:
> Dear Rafael,
>
>
> On 12/13/18 11:39, Rafael J. Wysocki wrote:
> > On Thu, Dec 13, 2018 at 10:54 AM Paul Menzel <pmenzel@xxxxxxxxxxxxx
> > > wrote:
> > > On 12/13/18 00:06, Doug Smythies wrote:
> > > > On 2018.12.12 13:40 Paul Menzel wrote:
> > > >
> > > > > Using *powersave* as P-state selection algorithm, on an idle
> > > > > system
> > > >
> > > > Define "idle system".
> > > > If your computer is running a GUI, or is even a server without
> > > > a GUI
> > > > but with many services running, then "idle" really isn't.
> > > > Below is from my test server, with many services disabled, so
> > > > "idle" really is quite "idle"
> > > >
> > > > doug@s15:~/temp$ sudo turbostat --Summary --quiet --show
> > > > Busy%,Bzy_MHz,PkgTmp,PkgWatt --interval 15
> > > > Busy% Bzy_MHz PkgTmp PkgWatt
> > > > 0.01 1608 27 3.71
> > > > 0.01 1619 27 3.71
> > > > 0.01 1600 28 3.71
> > > > 0.01 1600 28 3.70
> > > >
> > > > Note that p state 16 (1600 MHz) is the minimum for my older i7-
> > > > 2600k
> > > > processor.
> > >
> > > The thing is, on an Intel Kaby Lake laptop with Ubuntu 18.10 and
> > > GNOME
> > > running, it goes down to the lowest listed frequency.
>
> Checking the numbers again, I was mistaken. The lowest possible
> frequency
> of the Intel Kaby Lake i7-7500U in that laptop is 400 MHz, and it is
> going down to 600 MHz. Busy% from turbostat is 0.3 to 0.4.
>
> > Kaby Lake has hardware-managed P-states (HWP) which is a different
> > mechanism.
>
> Isnât HWP also available for the 6th generation?
>
> $ dmesg | grep intel_pstate
> [ 2.092456] intel_pstate: Intel P-state driver initializing
> [ 2.094820] intel_pstate: HWP enabled
>
> > > > > Shouldnât it go down until 800 MHz?
> > > >
> > > > We would need some actual busy information, turbostat is the
> > > > recommended tool, to know for sure.
> > >
> > > Here you go.
> > >
> > > ```
> > > tools/power/x86/turbostat> sudo ./turbostat --Summary --quiet --
> > > show Busy%,Bzy_MHz,PkgTmp,PkgWatt --interval 15
> > > Busy% Bzy_MHz PkgTmp PkgWatt
> > > 3.59 1167 31 1.68
> > > 3.21 903 31 1.34
> > > 3.21 906 31 1.34
> > > 3.27 901 31 1.35
> > > 8.23 2715 30 2.32 â stopping GDM (systemctl stop gdm)
> > > 2.95 915 30 1.18
> > > 2.91 906 30 1.18
> > > 2.92 903 30 1.17
> > > 2.90 900 29 1.17
> > > 2.89 903 29 1.18
> > > 2.91 903 30 1.18
> > > 2.89 903 29 1.18
> > > 2.89 900 29 1.18
> > > 2.90 903 30 1.18
> > > 2.90 903 29 1.17
> > > 2.90 903 29 1.17
> > > 2.90 900 29 1.16
> > > 2.90 903 29 1.14
> > > 2.90 903 28 1.11
> > > 2.90 903 29 1.10
> > > 2.91 900 29 1.16
> > > 2.91 903 29 1.14
> > > 2.90 903 29 1.12
> > > 2.90 903 29 1.16
> > > 2.90 900 28 1.17
> > > 2.92 903 29 1.16
> > > 2.90 903 29 1.16
> > > 2.90 903 29 1.16
> > > ```
> > >
> > > 800 MHz should be enough to keep GDM running, shouldnât it?
> >
> > Well, depending.
> >
> > > Otherwise only SSH was running.
> >
> > There obviously is something that causes it to stay at 900 MHz.
>
> Itâs not obvious to me, but you have more experience. Itâd expect
> to at least one core(?) to go down to 800 MHz and not all to stay
> at 900 MHz.
Also HWP will pick up energy efficient P-state. If it sees that it is
better to run at a higher P-state and complete the job at the same
power level.
There is a way to turn off that but better not do.

Thanks,
Srinivas

>
> > Please check max_perf_pct, min_perf_pct and num_pstates under
> > /sys/devices/system/cpu/intel_pstate/ .
>
> /sys/devices/system/cpu/intel_pstate> cat max_perf_pct
> min_perf_pct num_pstates
> 100
> 20
> 33
>
> > Also cpuinfo_max_freq, cpuinfo_min_freq, scaling_max_freq,
> > scaling_min_freq under /sys/devices/system/cpu/cpufreq/policy0/ .
>
> /sys/devices/system/cpu/cpufreq/policy0> cat cpuinfo_{min,max}_freq
> scaling_{min,max}_freq
> 800000
> 4000000
> 800000
> 4000000
>
> > However, please note that Busy% of 3 isn't particularly low.
>
> Indeed. On the laptop it is around 0.3 to 0.4 even with GNOME
> running.
>
> So, to check if everything is working, I boot into initramfs
> and check the numbers there?
>
>
> Kind regards,
>
> Paul
>