5

I have the following problem. As soon as the battery drops below 30%, the CPU is being throttled to 500Mhz. As soon as I plug in the power adapter, it goes back to normal. The laptop is a Lenovo U41-70, I am running Ubuntu 15.10 x64, the CPU is an Intel i3-5020U.

I am not sure if this is helpful, but while it's on battery and below 30%, lscpu (same values from cat /proc/cpuinfo) still gives out:

CPU MHz:               499.984
CPU max MHz:           2200,0000
CPU min MHz:           500,0000

When it's plugged in, CPU MHz immediately jumps up to 2195.015Mhz when there is load on the CPU, which is fine of course.

What could cause this problem? I don't have Windows installed so I don't know if the problem exists there as well.

Mudit Kapil
  • 2,051
  • 7
  • 30
  • 47
daniel
  • 71
  • 1
    have you dug through your BIOS settings? – inanutshellus Feb 01 '16 at 17:45
  • Incidentally, I had an issue like this years ago when my Dell laptop didn't recognize my Dell power cable as being from Dell! It locked my laptop at low-cpu speeds until I found another Dell power cable. Since yours is "only under 30% battery" it won't be your issue, but it's an example of the system taking over at the BIOS level and knee-capping you. – inanutshellus Feb 01 '16 at 17:52
  • lscpu and /proc/cpuinfo are not appropriate tools to monitor your CPU. Checkout your CPU with the proper tool i.e. powertop --> Frequency stats – linrunner Feb 02 '16 at 19:03
  • Thank you! Indeed, lscpu does not seem very accurate, I put the notebook under full load from about 29% to 5% battery, and powertop says 90% at 600MHz and 10% at 500. It looks like everything is alright in the BIOS. – daniel Feb 03 '16 at 15:15
  • As I could not get this problem resolved I will install Windows and see how that goes. This bug/feature/problem makes Ubuntu unusable for me. – daniel Feb 04 '16 at 10:23
  • Under your problem conditions what do you get for sudo rdmsr -a 0x19a? You will need msr-tools installed and sudo modprobe msr first. – Doug Smythies Mar 11 '16 at 07:37
  • Have you tried updating the BIOS? This could be a BIOS related issue. Many BIOS update packages contain a DOS-based flasher that can be used with a FreeDOS USB. If no DOS-based solution is available, you could use F4UBCD. – QwertyChouskie Mar 16 '16 at 23:25

2 Answers2

1

Edit a file

You can always change your clock speed by controlling Intel-pstate.

Intel-pstate can be controlled by changing files in /sys/devices/system/cpu/intel_pstate (Change as root i.e. using sudo)

Use a bash script

You can use this bash file, which I created for my own use. Note that I don't think i3 supports turbo boost.

  1. Download the file from google drive

  2. Run sudo chmod 775 set_cpu_pstate

  3. Execute with sudo ./set_cpu_pstate

  4. Set MAX power to 100

  5. Set MIN power to 100 to force high performance all the time

  6. Enter 1 to activate TurboBoost or 0 to deactivate it

CPU Frequency

You can use i7z for current CPU frequency.

sudo apt-get install i7z
sudo i7z
TheSchwa
  • 3,820
0

There seems to be a bug in the Lenovo BIOS that initializes the thermal zone limit to passive 0 (/sys/class/thermal/thermal_zone0/trip_point_2_temp), thus tripping overheat policies. If you rmmod then modprobe thermal, it should set you back to normal if you're having this problem on a Lenovo laptop.

  • That Lenovo BIOS problem manifests itself as a reduction in CPU frequency for each suspend / resume cycle. Myself, I do not believe it to be the same as this problem. I suspect, but have no proof that this is a Clock Modulation when battery low issue. see also. – Doug Smythies Apr 07 '16 at 18:23