Ubuntu – Poorer battery life after kernel upgrade: 4.5.2 (16.04 LTS)

16.04amd-graphicsbatterypower-managementtlp

When I first installed 16.04 LTS, at kernel 4.4.0, I had a decent battery life of about 3 hours average, but I upgraded to 4.5.2 to solve the suspend problem and some other issues, and now it's less than 1.40 hours, even at low brightness.

What could have caused a drop between the kernels? 4.5.2 is stable, and the same thing happened when upgrading to 4.4.8 (lts).

I'm attaching TLP outputs. I'm desperate to make this a better battery life.

uname -a:

Linux gaj-Lenovo-Z51-70 4.5.2-040502-generic #201604200335 SMP Wed Apr 20 07:37:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

I did a tlp -stat output of both kernels in use (4.4.0 and 4.5.2), and the only difference I can notice is that the latest kernel 4.5.2, outputs this, compared to the 4.4.0 which saves battery:

/sys/devices/system/cpu/intel_pstate/min_perf_pct      = 18
/sys/devices/system/cpu/intel_pstate/max_perf_pct      = 100
/sys/devices/system/cpu/intel_pstate/no_turbo          = 0

x86_energy_perf_policy: program for your kernel not installed.

When I try to install linux-tools, as explained at TLP's troubleshooting website, which says

tlp-stat -p shows "x86_energy_perf_policy: program [for your kernel] not installed."

Depending on the distro your mileage may vary:

Ubuntu: install the meta-package linux-tools (or linux-tools-lts-* for HWE stack kernels), no package available for mainline kernels.

I get:

 Package linux-tools is a virtual package provided by:
      linux-tools-virtual 4.4.0.21.22
      linux-tools-lowlatency 4.4.0.21.22
      linux-tools-generic 4.4.0.21.22
    You should explicitly select one to install.

So no tools for 4.5.2 kernel. Or should I install HWE stack tools? What does HWE mean in relation to the stable 4.5.2 kernel?

Many thanks.

EDIT: At 4.5.2 I can also hear the fan more frequently and intensely, even at opening Chrome, Skype, etc.

EDIT 2: It might be worth noting that I use a hybrid graphics system INtel and ATI, but I haven't installed any propriertary drivers, or manually upgraded any.

EDIT 3: sudo tail -f -n 1000 /var/log/syslog when starting TLP:

^[[B^[[AMay  5 21:52:57 gaj-Lenovo-Z51-70 kernel: [ 7945.966502] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
May  5 21:52:57 gaj-Lenovo-Z51-70 kernel: [ 7945.976707] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
May  5 21:53:12 gaj-Lenovo-Z51-70 kernel: [ 7961.360242] acpi_call: Cannot get handle: Error: AE_NOT_FOUND

Best Answer

You have installed TLP to extend the battery life on your laptop, but are still getting poor battery life. When you look at the output of tlp -stat output you found the error message x86_energy_perf_policy: program for your kernel not installed.

When you attempt to install the energy performance policy by sudo apt-get install linux-tools-generic the install appears to work but does not have any effect.

I have looked at the code for x86_energy_perf_policy and I could see no issues with it. It does not appear to be kernel specific so it looks like x86_energy_perf_policy which is part of linux-tools-common is not linked into the kernel properly.

This will have a big effect on battery life for laptops with Intel CPUs since the default policy is to maximise performance at the expense of energy expenditure (and hence battery life).

I may be wrong and x86_energy_perf_policy could be depreciated and TLP has yet to catch up but this looks like a serious kernel bug. I could attempt to patch your kernel to resolve this, but this issue will effect this and subsequent versions of the Linux kernel until it is resolved so I suggest you raise a bug by entering ubuntu-bug at a terminal. Feel free to paste parts of this answer into your bug report if this helps.

Related Question