RE: 5.2-rc2: low framerate in flightgear, cpu not running at full speed, thermal related?
From: Doug Smythies
Date: Tue Jun 18 2019 - 04:25:10 EST
On 2019.06.13 01:53 Rafael J. Wysocki wrote:
> I personally doubt that any thermal throttling is involved here.
In earlier e-mails on this thread, Pavel showed his core and package
temperatures as 97 and 98 degrees. If thermal throttling is not
involved, it should be. The description of the observed CPU
frequencies also matched my experiences with thermal throttling
for the intel-pstate/powersave example. Myself, I can not determine
if throttling is involved for the acpi-cpufreq/ondemand
case, just from the clock frequencies, because,
at least on my system, it uses the kidle_inject method
instead of the pstate method.
I continued doing experiments, enabling thermald (normally
disabled on my system) and forcing thermal throttling on
my test server. My system never gets hot enough, so I used
a low trip point of 55 degrees.
The intel_pstate/powersave and intel_cpufreq/ondemand,
which both used the pstate method, outperformed the
acpi-cpufreq/ondemand by 30%, in a constant thermal
throttling mode. This seems the opposite of Pavel's
results, if indeed his system is thermal throttling.
(I can write these experiments up in more detail
if desired.)
On 2019.06.13 Pavel Machek wrote:
> But it seems that your assumptions are incorrect for my workload.
Fair enough. I don't have the appropriate hardware for this, and
am trying to guess at a similar workflow for testing.
Perhaps, just mudding things here rather than helping.
>
> flightgear is single-threaded, and in my configuration saturates the
> CPU, because it would like to achieve higher framerate than my system
> is capable of.
Are you sure? Use turbostat and observe.
Example 1:
intel_cpufreq/ondemand, kernel 5.2-rc3, two 100% loads:
doug@s15:~$ sudo turbostat --quiet --hide IRQ,Avg_MHz,SMI,\
> GFXMHz,TSC_MHz,CorWatt,CoreTmp,GFX%rc6,Pkg%pc2,Pkg%pc3,\
> Pkg%pc6,POLL,C1,C1E,C3,C6,C1%,C1E%,C3%,C6% \
> --interval 5
Core CPU Busy% Bzy_MHz POLL% CPU%c1 CPU%c3 CPU%c6 CPU%c7 PkgTmp PkgWatt GFXWatt
- - 25.24 2780 0.00 25.70 0.01 49.05 0.00 56 23.82 0.12
0 0 1.62 2781 0.00 1.90 0.02 96.46 0.00 56 23.82 0.12
0 4 0.05 2833 0.00 3.47
1 1 100.00 2780 0.00 0.00 0.00 0.00 0.00
1 5 0.03 2893 0.00 99.97
2 2 0.03 2906 0.00 99.97 0.00 0.00 0.00
2 6 100.00 2780 0.00 0.00
3 3 0.07 2797 0.00 0.18 0.01 99.74 0.00
3 7 0.10 2834 0.00 0.14
Example 2:
acpi_cpufreq/ondemand, kernel 5.2-rc3, two 100% loads:
doug@s15:~$ sudo turbostat --quiet --hide IRQ,Avg_MHz,SMI,\
> GFXMHz,TSC_MHz,CorWatt,CoreTmp,GFX%rc6,Pkg%pc2,Pkg%pc3,\
> Pkg%pc6,POLL,C1,C1E,C3,C6,C1%,C1E%,C3%,C6% \
> --interval 5
Core CPU Busy% Bzy_MHz POLL% CPU%c1 CPU%c3 CPU%c6 CPU%c7 PkgTmp PkgWatt GFXWatt
- - 18.06 3069 0.00 18.45 0.01 63.47 0.00 55 21.50 0.12
0 0 15.55 3049 0.00 1.31 0.02 83.12 0.00 55 21.50 0.12
0 4 0.64 2651 0.00 16.22
1 1 62.43 3075 0.00 8.15 0.00 29.43 0.00
1 5 7.71 3068 0.00 62.81
2 2 50.56 3091 0.00 0.78 0.00 48.66 0.00
2 6 0.44 2346 0.00 50.89
3 3 2.30 2901 0.00 5.00 0.01 92.69 0.00
3 7 4.79 3016 0.00 2.49
With the additional C6 % coming from the kidle_inj tasks.
Observation 1: The loaded CPUs migrate much more often in this scenario.
Observation 2: While the package watts are different by over 2 watts,
the long term (done over many hours) average was the same for all methods.
... Doug