linrunner / TLP

TLP - Optimize Linux Laptop Battery Life
https://linrunner.de/tlp
GNU General Public License v2.0
2.66k stars 128 forks source link

SCHED_POWERSAVE enabled with intel_pstate yeld worse cpu core idle times #260

Closed 0x041E closed 7 years ago

0x041E commented 7 years ago

Symptom data

Using the SCHED_POWERSAVE_ON_AC or SCHED_POWERSAVE_ON_BAT = 1 option on my intel dual core cpu using intel_pstate driver causes cpu cores idle much less compared to this option disabled. On the same workload with this disabled i get core1 20% idle and core2 80%idle (measured using powertop) but when i enable this feature both cores are idle only 20% under the same workload which means they are powered up more and are still using same frequencies in both cases and my reported system baseline power (again in powertop utility) is also higher when this feature is enabled

  1. Does the problem occur on battery or AC or both? Both
  2. Attach the full output of tlp-stat via Gist for all cases of 1. https://gist.github.com/0x041E/3a667a8d4e3b8777eb94dec6e23466e8

Expected behavior

extra Cpu cores should idle the same or more than default as the feature is supposed to couple processes together to same core to increase idling of non used cores

Actual behavior

Increases power usage and makes core(s) idle less on my system

Steps to reproduce the problem

Enable the scheduler powersaving SCHED_POWERSAVE_ON_AC=1 SCHED_POWERSAVE_ON_BAT=1

I'd be glad for people with intel cpus to test this and report if anyone has the same behavior as it's quite strange

linrunner commented 7 years ago

Hi,

SCHED_POWERSAVEON* has no effect on your hardware / kernel, it definitely does not cause your symptoms.

The corresponding sysfile /sys/devices/system/cpu/sched_mc_power_savings doesn't exist – otherwise tlp-stat would show it –, so TLP doesn't change anything. See the related function set_sched_powersave().

If I remember correctly, the sysfile in questions existed only in older kernels in conjunction with the acpi-cpufreq driver.

What you observe is most likely a kernel issue, so you should file a bug report there.