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