Hi XDA'lers,
I think it would be interesting to collect some stats on the undervolting capabilities of our mantas. Hopefully it helps others who also intend to save some energy by doing this. If you want to participate, please post your lowest possible settings exactly like this:
CPU:
Code:
% MHz= [ 100, 200, 300, 400, 500, 600, 700, 800, 900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100];
BR
900, 900, 900, 900, 900, 912, 925, 950, 962, 987,1012,1037,1075,1100,1137,1187,1225,1250,1275,1300,1325; % [email protected]_kernel_name_and_version (hotplugging_state)
% BR
GPU:
Code:
% MHz= [ 100, 160, 266, 350, 400, 450, 533, 612, 667, 720];
BR
900, 900, 925,1000,1050,1100,1150,1200,1250,1300; % [email protected]_kernel_name_and_version
% BR
... and don't forget to replace the default mV values in the third line by your own ones. Please write your username, kernel, and hotplugging state where indicated.
You can find out whether hotplug is enabled or not, if you have a look at your governor adjustments, or watch the state of the second core when idle (for example in the KTweakerT app).
~ Rules ~
Each CPU value should run stable for at least 30 minutes under stress-testing conditions. (Use some tool like for example the "Classic Stability Test" within the app "StabilityTest", or "SetCPU".) Don't use HD videos or something like that for stress testing, they are a joke to our CPU. :laugh:
If you don't adjust certain values, like for example CPU frequencies above 1700 MHz: Do not write '0'. Please leave it at the default value.
Be honest. We love you for your personality, not your Android. (If you want to submit anonymously, you can write me a PM as well.)
Don't let your kernel config app set test values on boot. :silly:
Your settings should not impair the usability of your device at all. (Crashes upon governor scaling for example.)
GPU voltages can sometimes be set below device minimum, however, we want to collect values that allow an unimpaired experience with no graphical glitches at all.
If you want to copy values from others, be aware that their best settings are not the best for you. Every Nexus 10 is different, and there is the risk that some voltage is unstable on your system. If it works anyway, you save power by applying the settings, but chances are that you could find even more efficient values! To maintain statistical significance, please do not post settings that you copied from someone else.
~ CPU Release 2013-04-29 ~
~ GPU Release 2013-04-29 ~
Top: A graph that estimates the total amount of dissipated power. Beware of the horizontal line, as it is the highest value that Samsung and Google have designated. Here you can see, how undervolting and overclocking can combine to higher performance without higher heat emission (with Enigma's Crème de la Crème Preset up to 1900MHz CPU clock). This way you actually can safely overclock the CPU. (pingguo is not responsible for any damages on devices other than his own. They are in perfect condition, though. I'm just saying this because everyone does.)
On the left, you can see the differences between the default voltages and custom values.
The right side indicates the power consumption compared to default values. This might be the most important graph!
Source: http://en.wikipedia.org/wiki/CPU_power_dissipation
Matlab-Sourcecode, for the enthusiasts:
Code:
ping = [ 100, 200, 300, 400, 500, 600, 700, 800, 900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100];
guo = [ 900, 900, 900, 900, 900, 912, 925, 950, 962, 987,1012,1037,1075,1100,1137,1187,1225,1250,1275,1300,1325; % DEFAULT
800, 800, 825, 850, 875, 875, 900, 900, 925, 950, 975,1000,1025,1050,1075,1100,1125,1160,1200,1250,1290; % Butterlicious, Margarine 2013-04-24
750, 750, 775, 800, 825, 825, 850, 850, 875, 900, 925, 950, 975,1000,1025,1050,1075,1110,1150,1200,1240; % Crème de la crème 2013-04-24
785, 785, 785, 785, 785, 790, 795, 815, 835, 865, 890, 915, 955, 985,1015,1055,1095,1125,1165,1205,1325; % PINGGUO
% 760, 760, 760, 760, 760, 765, 770, 790, 810, 840, 865, 890, 930, 960, 990,1030,1070,1125,1165,1205,1325; % PINGGUO-AGGRESSIVE
];
ref = ones(length(guo(:,1)),1)*guo(1,:);
pingg= ones(length(guo(:,1)),1)*ping;
hvhf = ones(1,length(ping)) *1700*1225^2; % max. f*V^2 with default settings
subplot(2,1,1);
plot(ping,[pingg.*guo.^2;hvhf]);
axis([ping(1),ping(length(ping)),0,4E9]); % set Y limit so that it looks nice
xlabel('Frequency / MHz');
ylabel('f * V^2 ~ Power Consumption (Arbitrary Units)');
title('Total Power Consumption; Horizontal Line = Maximum with DEFAULTS');
subplot(2,2,3);
plot(ping,guo-ref);
axis([ping(1),ping(length(ping)),-200,20]); % adjust Y range if necessary
xlabel('Frequency / MHz');
ylabel('Voltage Offset (V - V_{DEFAULT}) / mV');
title('Nexus 10 CPU Undervolting: Voltages');
grid;
subplot(2,2,4);
plot(ping,(guo./ref).^2*100);
axis([ping(1),ping(length(ping)),0,110]);
legend('DEFAULTS (KTManta-04-19-2013)','PRESETS Butterlicious, Margarine (EniGmA1987)','PRESET Crème de la crème (EniGmA1987)','[email protected] (Hotplugging OFF)','Location','SouthEast');
xlabel('Frequency / MHz');
ylabel('(V / V_{DEFAULT}) ^2 ~ Power Consumption (Percentage)');
title('Relative Power Consumption');
grid;
Most of this ugly piece of code works automatically for everything, just write into the matrices and check the lines with commentaries. :silly:
Cheers,
苹果
Bus overclocking is not something the user controls, the kernel sets that. The previous 3 versions of the KTmanta kernel all have a 25% bus overclock, Trinity also has this same thing. But the latest version of KTManta does not have a bus overclock. So people need to specify which kernel version they are on so that everyone knows what features it has.
EniGmA1987 said:
Bus overclocking is not something the user controls, the kernel sets that. The previous 3 versions of the KTmanta kernel all have a 25% bus overclock, Trinity also has this same thing. But the latest version of KTManta does not have a bus overclock. So people need to specify which kernel version they are on so that everyone knows what features it has.
Click to expand...
Click to collapse
Thanks for the comment, I updated the code template.:good:
Preview online, just to let you know what I intended.
Currently I am trying to fix the sleep of death that my Nexus 10 is suffering from... Advice would be highly appreciated.
(It does not wake up when I press the power button after some screen off time. Only a hard reset brings it back to life.)
Edit: I am not yet sure about it, but seemingly, the problem does not occur when I use a governor which keeps both cores running at all times...
pingguo said:
Preview online, just to let you know what I intended.
Currently I am trying to fix the sleep of death that my Nexus 10 is suffering from... Advice would be highly appreciated.
(It does not wake up when I press the power button after some screen off time. Only a hard reset brings it back to life.)
Edit: I am not yet sure about it, but seemingly, the problem does not occur when I use a governor which keeps both cores running at all times...
Click to expand...
Click to collapse
Are you using the KTmanta kernel? If you have hotplugging enabled and you undervolt too much, sleep of death will occur.
For me, I have to raise my minimum voltage to 830 with hotplugging enabled to prevent sleep of death.
If I have hotplugging disabled, I could undervolt way low than that
c19932 said:
Are you using the KTmanta kernel? If you have hotplugging enabled and you undervolt too much, sleep of death will occur.
For me, I have to raise my minimum voltage to 830 with hotplugging enabled to prevent sleep of death.
If I have hotplugging disabled, I could undervolt way low than that
Click to expand...
Click to collapse
Yup, I'm on KTManta. Also, hotplugging seems to be exactly the reason for my SODs.
Now the big question is: What is more efficient - Hotplugging and thus saving 50% of the power, or stronger undervolting, saving 25%, and maybe more effective racing to idle with both cores?
BTW, are you implying that hotplugging is always performed at the lowest possible frequency?
Edit: There is still one thing that puzzles me: Hotplugging while the screen is on works perfectly fine at the voltages which cause the SOD...
pingguo said:
YWhat is more efficient - Hotplugging and thus saving 50% of the power, or stronger undervolting, saving 25%, and maybe more effective racing to idle with both cores?
Click to expand...
Click to collapse
Hotplugging doesn't save 50%. The theory of it does but actual execution that is not even close to possible. It saves 2-3% battery
This may seem like a very noob question, but I am running the nightly builds of CM10.1 and I just installed the KTmanta kernel but I don't see where to change any governor settings. Is it an app I need to install? Help?
EniGmA1987 said:
Hotplugging doesn't save 50%. The theory of it does but actual execution that is not even close to possible. It saves 2-3% battery
Click to expand...
Click to collapse
Well, then I feel very comfortable with undervolting only. :laugh:
parakalien said:
This may seem like a very noob question, but I am running the nightly builds of CM10.1 and I just installed the KTmanta kernel but I don't see where to change any governor settings. Is it an app I need to install? Help?
Click to expand...
Click to collapse
Install the KTweakerT app from the kernel forum thread.
Updated the CPU graph with some overclocking data. Please let me know whether or not it is true that OC with no increase in heat emission is safe.
Update:
Graphs should be more comprehensible and informative.
Added full source code for you source lovers.
Cheers!
pingguo said:
Updated the CPU graph with some overclocking data. Please let me know whether or not it is true that OC with no increase in heat emission is safe.
Click to expand...
Click to collapse
The three most damaging things to a processor are: amperage, voltage, and heat. Heat is tricky, because every processor has a maximum heat limit it is designed for. The more heat you have the less life your processor will have. However, if you stay within its maximum heat limitations then the processor will still last many many years, as soon as you get above that heat limit you start damaging the processor extensively, greatly lowering its lifetime and possibly causing irreparable damage in that you can no longer run at the higher core speeds stably anymore. So you always want to stay within heat limitations, preferably as cool as you can.
Amperage is also highly damaging to processor silicon, but thankfully we dont really control this up or down on most processors. One good example of this can be seen with RAM, which you can control amperage on. The best example here is RAS to RAS timings, which is when the RAM chips get pulsed with large amounts of amperage. It has been many many years since I looked into the technical details of this, but I *think* this happens when a row of addresses is pre-charged before access or something like that. Normally this happens every 4-6 cycles on average. Many people in order to increase stability of their RAM overclocks would lower this, I even did some stuff for a while with a setting of 1 for this timing. Because of low values on this timing the RAM is getting pulsed with large amounts of amperage quite frequently and this was causing massive degradation of the cell structure and creating micro-holes in the silicon. These holes then in turn require more amperage to remain stable at your MHz speed in order to overcome the damage, and with the higher amperage needed you continue to accelerate the damage. It is just a snowball effect of damage to the RAM chips that leads to complete death of the chip in a few months. This was why you saw large failure rates on DDR2 RAM at one point "back in the day" when D9GKX and GMH chips were all the rage. So all that to say, large amperage is bad for computer chips.
Next up is voltage, which we do control. More voltage is needed for high MHz speeds as we need to make the transistors switch faster and have more power to give in order to achieve higher speeds. Higher voltage leads to greatly increased heat output, greatly increased battery drain, and also if you are using voltage above the chip's specifications causes damage to the processor itself. Lowering voltage is the best thing we can do to keep our processors running at their best. A tiny decrease in voltage will often be 1-2 degrees cooler in temperature, and usually means a few less watts as well (depends on chip architecture). Just last week I was overclocking an Intel i7-3930K processor. I had fun playing around with it and observing the changes happening. I observed with 1.4v and 4.5GHz core speed than power draw was 198 watts under 100% load. Going to 4.6GHz raised power draw up to a nice even 200 watts (2 watts more for 100 MHz). I then went back down to 4.5GHz speed and increased the voltage from 1.4v to 1.42v, and saw a temperature increase of 4-5 degrees on all the cores and a 6-7 watt power consumption increase. Just from raising the voltage that little bit.
So the best thing we can do for our tablets is to undervolt. But when overclocking, as long as you stay within the chip's voltage limits and heat limits, the extra core speed doesnt really affect the chip's lifetime at all, until you get many MANY MHz ahead of its design. if you can overclock up an extra 300MHz while still dropping voltage a bit you will see both a reduction in power consumption (even with the extra speed) and a reduction in heat. Although these reductions will not be as much since we are also generating small bits more of power draw and heat from the higher speeds too.
TL;DR
overclocking is fine and wont damage your processor as long as you remain at the same or less voltage and heat output.
There's something odd with Snapdragon 625 on RN4 (according to me).
I have noticed that the maximum clock is half of the times coming down to 1.6GHz or less instead of 2.0GHz, especially when charging when the phone is warm (but temperature isn't high enough to trigger down clocking-- around 30-40 degree Celsius).
This also happens when the phone is not charging and I am doing some task like using apps or playing games when the phone's hardly heating up (afterall, SD 625 is known for its no heating issues).
It looks like whenever I am doing some task that doesn't involve much processing, the max clock comes down (but when I am performing some CPU intensive task such as installing an app, the max clock stays at 2GHz).
I am using interactive governor. PLEASE NOTE THAT I AM TALKING ABOUT THE MAXIMUM CPU CLOCK WHICH IS AFFECTED IN MY CASE. Using Kernel Adiutor to reset max freq. to 2GHz hardly works. It seems like the system ignores my clock settings. Even if i set the governor to performance, the max clock still keeps coming down and going up.
What's the deal with this processor?
Also, all the 8 cores are ALWAYS ON. There's no option for CPU hotplug in Kernel Adiutor.
Please someone shed some light over this.
CPU is thermal throttling not only when CPU is hot, but also when battery is hot. Also it is using a frequency which it needs, if it's using 1.6ghz it means it doesnt need more for whatever you have been doing.
k3lcior said:
CPU is thermal throttling not only when CPU is hot, but also when battery is hot. Also it is using a frequency which it needs, if it's using 1.6ghz it means it doesnt need more for whatever you have been doing.
Click to expand...
Click to collapse
It also happens when the phone is not warm/hot.
Please note that I'm not talking about the current frequency that is being used, I AM TALKING ABOUT THE MAX FREQ that is pulled down and up when I am working (even when just simply using the phone for little tasks which doesn't really heat the phone up).
While using any governor, the max freq should stick to what it is set to and the current freq varies. But here, the max freq is varying along with the current freq. Is this some feature or what?
If this is actually due to heating, is the management so bad that even 35-40 degree celsius makes the CPU throttle? Generally throttling happens at much higher temperatures.
This is 14nm SoC, it has much lower temperatures but also much lower max temp. (throttling start on lower temps)
You can't heat up this CPU to 60C or more like Snapdragon 8xx for example, because it will shut down.
k3lcior said:
This is 14nm SoC, it has much lower temperatures but also much lower max temp. (throttling start on lower temps)
You can't heat up this CPU to 60C or more like Snapdragon 8xx for example, because it will shut down.
Click to expand...
Click to collapse
LOL means I can't make good use of the 2GHz 8 core CPU for long because it'll heat up and simply throttle down. That's too stupid to have a powerful processor.
i am having heating issue. I found no thread discussing.. I am in Miui9 global beta version. Rooted withMagisk using redwolf twrp. My top part of screen heats in normal usage for 5 minute in wifi/data.I have checked the cpu temp( maximum 42) and battery tem( 36 to 38)..But the screen become hot..any work around? Is it a software or hardware issue? how to resolve it