Changing kernel voltages

by Jake on 4/04/2011

I had a request to provide a tutorial on changing kernel voltages. Although in Govnah it’s pretty straight forward, there’s more to it than swapping some numbers. I have found that voltages are almost directly related to battery life and load average. Load average is an algorithm used by Linux to determine the processor’s current percentage of work. Read more about load average here.

When your phone is idling, your battery drain shouldn’t be anything over -10mA(check this using Battery Monitor or leave Govnah polling screen off.) There’s a slight trial and error process to this, but you’ll want to be VERY careful, or else you’ll have to doctor your phone.

 

To change voltages in Govnah, tap Profile > Advanced Settings > CPU Frequency > Override Parameters: CPU or System Voltage. I would recommend keeping the default voltages of the kernel, then changing them one step at a time, either up or down. You’ll want to base most of this off of your load average. The lower the load average, the better. If your load average is above ~6.00 while idling, you need to take your voltages in the opposite direction. You want the lowest possible load average while still getting the performance you want. if your phone is going up to 10.00 while at 1 GHz and a lot of usage, that’s okay. A method to lower the load average is to turn off any unnecessary radios(Bluetooth/GPS) or polling applications(Such as Email, Facebook, or Weather).

Each governor has a different way of handling the frequencies and voltages.

  • Performance: Stays at the highest set frequency no matter what, not changing voltages.
  • Powersave: Stays at the lowest set frequency no matter what, not changing voltages.
  • Ondemand: Changes frequency based on load instantly, changing voltages with it.
  • Conservative: Changes frequencies based on load slowly, changing voltages with it.
  • Userspace: Stays on a set frequency, not changing frequency or voltage based on load.
  • vdemand: Stays at the highest set frequency no matter what, changing voltages based on load.
  • Screenstate: Changes frequency based on if the screen is on or off, changing voltages between those 2 frequencies.
  • Screenstate v2: Changes frequency based on if screen is on or off, changing voltages based on load(You can also set a vdemand factor, which is how much scaling you will allow the kernel to set voltages to).
    (Thanks wusaint)

Ultimately, the governor choice is how you should approach your voltage scaling. Each user is different in how they use their phone, so that’s why you have these options to help you decide. Voltages will help you gain better battery life, so if you feel that you’re losing battery for no reason, it’s probably this. Good Luck!
Please remember, by using any overclocking kernel, you take full responsibility for any harm that may come to your device.

There are 10 comments in this article:

  1. 5/04/2011free says:

    Why does voltage matters cpu loads?

  2. 5/04/2011Jake says:

    Voltage is correlated with CPU usage. If you undervolt it too much, the CPU starts having to work really hard, increasing load.

  3. 9/04/2011Nick says:

    I think you should revise your wording in this article: “Brick” is not right. Unless you just intend that as a cautionary warning for inexperienced folks… memboot should cure any issues, correct?

  4. 9/04/2011WebOS 2.1 - Battery Usage - Page 2 - PreCentral Forums says:

    [...] Webos World just posted a blog entry on tuning voltages. It also has explanations of the governors which are available (some only available with testing kernels). Vdemand and Screenstate V2 are pretty cool… I believe both of those are available in the F104a kernel. Changing kernel voltages [Tutorial] | WebOS World [...]

  5. 9/04/2011Nick says:

    Thanks for posting the tutorial. I understand that this tuning process needs to be somewhat vague so that users can find the correct voltages for their processor/phone/governor. However, i would appreciate a bulleted methodology for tuning these.

    Would it go like this:
    - Choose the Governor that seems to best suit your needs
    - turn off all phone radios, close all apps,
    - monitor load average and adjust ONE voltage by ONE step so that this load average drops. Launch some processor heavy apps and watch the load average to see how it changes.
    - Repeat the previous step until the load average is minimized during idle, and minimized during high-demand while maintaining sufficient performance levels.

    Is that about right?

  6. 14/04/2011调整超频内核电压[教程] | 胖鱼网 | 我们关注、传播关于WebOS的一切!HP webos , pre, pixi, touchpad, veer says:

    [...] 胖鱼网编译,原文地址:http://webosworld.com/2011/04/04/changing-kernel-voltages-tutorial/ [...]

  7. 29/05/2011The old Pre is out again! WebOS ftw - PreCentral Forums says:

    [...] also wrote an article similarly but unknowingly to the WebOS Roundup article. Changing kernel voltages [Tutorial] | WebOS World Kind of gives an in depth to Load Average's and how performance of your phone(especially helps [...]

  8. 15/08/2011edward says:

    i made my 500mhz with 962.5 mV (29) is that ok?

  9. 24/08/2011Jake says:

    Probably too low..

  10. 10/11/2011Undervolting Pre3 - PreCentral Forums says:

    [...] do you undervolt? i found this (Changing kernel voltages [Tutorial] | WebOS World) but i don't see override paramaters in [...]

Write a comment:

  • Articles (3)
  • Device Services (1)
  • Enyo (3)
  • News (5)
  • Parts (1)
  • Research (1)
  • Tips (2)
    • wowAppTips (1)

  • RSS Feed of the articles
  • RSS Feed of the comments
Email: contact@webosworld.com
Twitter: @webosworld @villo

WebOS World is powered by vostok