The non-technical guide to understanding CPU/GPU governors - T-Mobile Samsung Galaxy S 4

The non-technical guide to understanding CPU/GPU governors
There are a lot of guides out there about CPU and GPU governors. They are all very informative, and usually somewhat technical. The other day, however, I needed to explain CPU and GPU governors to a non-technical person, and I realized that a lot of big verbiage and vague terms get thrown around which help the technical, but cloud the issue for some. So, I decided to share my non-technical explanation here, in hopes that it will help others also. This is not a perfect analogy, nor a technical one, but I think it gets the job done.
Consider driving your car in the rain.
The more it rains, the less you can see. Hence the slower you should drive. Each swipe of the windshield wiper clears the window. The rain is like the CPU/GPU load, or how much work the CPU/GPU needs to do to clear the windshield.
Sometimes it is raining very hard. Sometimes it is a sprinkle. But in this make believe world, it is always raining.
As the driver of the car, you get to pick the speed at which the wipers swipe. It is entirely up to you, you are the governor, or the one in charge of the windshield wipers. You can't control how much it rains, but you can control how fast your wipers swipe the windshield clear.
There are many types of drivers out there, just like there are many governors. However, they all fall into several basic categories.
The Performance type governors are like a driver who gets into the car, and he turns on the wipers full speed. Even if it is barely raining. No matter how much rain does, or does not fall on the windshield, he keeps the wipers going full blast. This works very well to keep the windshield clear. However it also makes the wiper blades get pretty hot when it is just a sprinkle. All the friction from swiping back and forth will eventually wear out his wiper blades, and he will replace them a lot sooner if he does this, but his windshield will stay clear!
The Powersave type of governors are like a driver who gets into her car and turns the wipers on at the lowest possible speed, with the longest delay between swipes. This works great if it is just sprinkling, but anytime she gets into a down pour, she has to practically come to a stop, because she can't see where she is going through all that rain on her windshield.
The On Demand type governors, are the drivers who are always adjusting by wild amounts. "Oh, it's raining harder, I will turn the wipers all the way up!" He says. "Oh, I guess that was too much. I'll turn them down now." Back and forth this driver goes, always pushing up to maximum wiper speed, only to find that he should probably turn the wiper speed down. Often, this guy is over-adjusting for the actual amount of rain, but his windshield stays pretty clear. Essentially, he has become his own delay module, waiting for rain on the windshield, he then turns on the wipers to clear it, then practically turns the wipers off. Then repeat, over and over again.
The Conservative type governors, however, take a more methodical approach. When she sees that it is raining harder, she turns her wiper speed up one notch. Then she waits a few seconds to see how well that works. Not enough wiper speed to keep the window clear? Then she will turn up the wiper speed another notch. Still not enough? Then she turns the wiper speed up another notch. One notch at a time, with a moment to check the results before making another correction. Then, if the wipers are too fast, she turns them down one notch. The process continues, constantly adjusting, one notch at a time. This can work very well. It can also be problematic if there is a huge change in the amount of rain. If it was sprinkling, and then starts to pour, it may be a while before she gets her wiper blades to "catch up" with the amount of rain.
Of course, there are Ideal frequency governors. This man has already determined that if it is raining, he will use a particular delay or speed setting for his wipers. He may adjust them slightly if it is raining more or less, but he will always strive to keep his wipers at the setting that he already determined was the one that he thought was best. Usually this setting is somewhere in the middle. Not really performance, not quite powersave, just somewhere in the middle that he thinks is best. This can work good for average use, but can be taxing your battery while "coasting" and can be less able to handle heavy rains (high work loads).
Then there are the dependent type of governors. This person gets into her car and begins to drive through the rain. Rather than setting her wipers based on her view out the window, this lady sets her wiper speed based on some other variable. For instance, the Intellidemand governor sets the CPU frequency based on GPU speed. This would be like a woman who sets her wiper speed based on her car's speedometer. If she is driving faster, then she turns up the wiper speed. If she is driving slower, then she turns down her wiper speed. It makes sense, but works only as good as the thing controlling it. It seems like a good idea, if you drive faster, you need a clearer windshield, so you should wipe the rain away faster. The only issue here is that it may not be raining very hard, yet, because you are driving faster, you must set your wipers to swipe faster. Generally this works very well, but may not work in every condition. Some of these governors have other variables, such as "touch poke" where the CPU frequency, or wiper speed, goes up when you touch the screen. Much like turning up the wiper speed when the hi-beam headlights get turned on.
Essentially, all governors are like one or more, or some combination of, the above. Most simply fine tune the variables or combine some functions of the above to get the results they want. Some are designed for power saving, others for performance.
So, which one is the best?
Well, that depends. Is it raining really hard all the time? Does it barely rain at all? Is there just a good gully-wash once a day, and other than that it is just a sprinkle?
Lots of people argue over which one is the best, but it is really hard to quantify. The reality of it is not which governor is the "best" but which governor is the "best for you". Only you know what your daily "rainfall" is like. Perhaps you are okay with driving a little slower in the rain. You might even enjoy it. Maybe you have ADD and need that windshield spotless all the time. I don't know.
A few thoughts for you to consider though:
Do you need your phone to be battery friendly?
I get up at 4:30 AM every morning for work. I put my phone back on the charger every night around 8 PM. My battery only has to last 16-17 hours. Typically, based on my choices and daily use, I average about 50% battery life left when I put it on the charger. Based on my usage, I could choose a more performance driven governor, and not have to worry too much about battery usage. If you are always out and about, in the wild, hiking, camping, fishing, you may want to consider a more battery friendly option to extend your use for longer trips between chargers. My point being that it does you little good to choose so many battery friendly options that your phone lasts 6 days on a charge, but you plug it in every night.
Do you need your phone to out perform anybody?
I don't play video games. I rarely watch youtube/hulu/netflix/vudu/(name your video streaming service here) on my phone. Do I need a performance based governor? Sure, the benchmarks are impressive, but does it really mater that you are clocking max speeds to check you email?
You don't have to choose just one setting.
Many people get "stuck in a rut" (back to our car analogy) when it comes to settings like governors. With apps such as Kernel Adiutor, Device Control, and others, you can set profiles, or make backup configurations that you can quickly implement when you want to. If you hardly use your phone when you are at work, but become a gaming fiend at home. Maybe it is the opposite, at work you use your phone for serious number crunching with some math apps, and at home it just becomes your telephone. Choose a different option that suits your needs in each instance.
I hope that helps lay the groundwork for what a governor does. Here is a technical guide to each governor: http://forum.xda-developers.com/general/general/ref-to-date-guide-cpu-governors-o-t3048957
Feel free to post if you have thoughts, comments, or questions relating to governors. It is only a community when people participate.

@AlaskaLinuxUser I went through the post twice or thrice. I have a better and clearer concept about governors now. But I have a confusion. Is there a way to create my own CPU governor? Is there any such thing as creating own governor?

SoapDev2018 said:
@AlaskaLinuxUser I went through the post twice or thrice. I have a better and clearer concept about governors now. But I have a confusion. Is there a way to create my own CPU governor? Is there any such thing as creating own governor?
Click to expand...
Click to collapse
Absolutely, positively the best governor question I've ever been asked.
Yes.
You most certainly can make your very own governor. Obviously, the original kernel builders made the first governors, and so many govs exist because users made more. Typically, to write one from scratch would take strong c or c++ programming skills.
However, a good place to start would be to edit an existing governor to suit your liking. A lot of trial and error is required, as well as many testing trial runs.
If I get the chance, perhaps later I can point out a few govs that are simpler to understand the code, and point a few things out for you, but you are welcome to dig around a bit.
Off the top of my head, minmax might be a good one to look at.

Also, here is a repository of a bunch of govs, check here:
https://gitlab.com/alaskalinuxuser/Kernel_Tweaks
And take a look at performance and powersave, and compare them to minmax and lionheart. This hopefully will give you a general idea of how a gov works, then perhaps we can talk about it a little more.

AlaskaLinuxUser said:
Also, here is a repository of a bunch of govs, check here:
https://gitlab.com/alaskalinuxuser/Kernel_Tweaks
And take a look at performance and powersave, and compare them to minmax and lionheart. This hopefully will give you a general idea of how a gov works, then perhaps we can talk about it a little more.
Click to expand...
Click to collapse
Unlimited thanks might not be enough. Kudos! I'll go through them all, try to get a grasp over them and post queries accordingly

SoapDev2018 said:
Unlimited thanks might not be enough. Kudos! I'll go through them all, try to get a grasp over them and post queries accordingly
Click to expand...
Click to collapse
Thanks, but building govs is a bit high level and advanced stuff. I'm no expert, in the past, I have only done small modifications to govs to get them to work with the kernels I was working on.
A good place to take a look is to download the conservative gov and the lionheart gov. Open both in a program like diffuse or other line by line comparing program and you can see how the lionheart governor was made from the conservative governor. Typically, any gov maker is just modifying one of the 5 "original" govs (performance, powersave, ondemand, conservative, or userspace).
By comparing the conservative and lionheart govs, you can see the real changes were these three things:
1. Changing the frequency up and down thresholds.
Code:
#define DEF_FREQUENCY_UP_THRESHOLD (80)
#define DEF_FREQUENCY_DOWN_THRESHOLD (20)
2. Changing what was used to measure idle time. In the conservative gov it is u64, in the lionheart it is cputimer.
Code:
static inline u64 get_cpu_idle_time_jiffy(unsigned int cpu, u64 *wall)
{
u64 idle_time;
u64 cur_wall_time;
u64 busy_time;
vs.
Code:
static inline cputime64_t get_cpu_idle_time_jiffy(unsigned int cpu,
cputime64_t *wall)
{
cputime64_t idle_time;
cputime64_t cur_wall_time;
cputime64_t busy_time;
3. Changing the sampling rate determination from a math formula (conservative) to a set flat amount (lionheart):
Code:
/*
* conservative does not implement micro like ondemand
* governor, thus we are bound to jiffes/HZ
*/
min_sampling_rate =
MIN_SAMPLING_RATE_RATIO * jiffies_to_usecs(10);
/* Bring kernel and HW constraints together */
min_sampling_rate = max(min_sampling_rate,
MIN_LATENCY_MULTIPLIER * latency);
dbs_tuners_ins.sampling_rate =
max(min_sampling_rate,
latency * LATENCY_MULTIPLIER);
vs.
Code:
min_sampling_rate = 10000;
dbs_tuners_ins.sampling_rate = 10000;
So you can see how you could edit at least #1 or #3 to change the way this governor functions, and learn a little about how it works.
Another option is to utilize the userspace gov. It is written to allow the user of the phone to specify what cpu frequencies that they want. Almost all kernels support the userspace gov, and you as a user can just specify what cpu frequency you want by writing it to a certain file. This will require root permission, typically. So, if you program in another language, say python, shell scripting, c++, c, java, etc., you can use an app that you make for Android to control this file, and be your own governor. This is a slow and somewhat backwards method, but it may give you an idea of what you might like to change in a governor.
Hope that helps!

Related

Governor test, cpu speed vs. load, achieving better battery?

I am running Chad's 12-23 kernel on a mostly stock ROM, and have been testing between the on demand governor and the smartass governor, trying to determine which would give better battery life. I ran a log over a 1 minute period with the phone on/awake, but idle. I did NOT kill any background processes, and ran both tests back to back so running processes shouldn't have changed.
Over a one minute period, the governors averaged the following:
On demand
264 mhz
20% load
Smartass
371 mhz
14% load.
As a side note, the smartass governor scores slightly, yet consistently higher on quadrant, seems to run a much more stable framerate on the planet-and-moon graphics test.
so which should be better for batter, and why? lower speed, or lower load?
In general, smartass should provide better battery life than ondemand since it doesn't scale upwards as violently.
Sitting idle with the screen on isn't the best condition for comparing different governors. Since the governors affect the speed and level of scaling, you would want to test under conditions that have more dynamic processing needs.
While it doesn't answer all the questions you have, you might find this helpful:
Effects of CPU Frequency and Screen Brightness on Power Consumption
The funny thing is that even the On Demand governor on this kernel seems modified. On the stock kernel, on demand usually idles much higher, 600-700 mhz. So whatever changes Chad has made overall are causing on demand to be more conservative as well.
I don't really know a method to test under more dynamic circumstances. I'm simply observing in System Panel. But the logging feature it has doesn't get super detailed with CPU speed. Only the realtime monitor. About the only "test" I could do was to scroll the app list up and down on the system panel screen. This causes the mhz and load to jump up pretty much immediately to 800+ mhz. I did not see ANY difference in this between the two governors, they both seem to ramp up equally aggressively, and both would jump to about the same mhz.
bast525 said:
I don't really know a method to test under more dynamic circumstances.
Click to expand...
Click to collapse
You could set up scripts that run various commands/processes, with sleep times in-between.
Do you have Tasker? You could set up Tasks that not only would automate various processes, thereby exposing your CPU to dynamic (yet controlled) conditions, but Tasker now has %CPUFREQ which could record the current CPU frequency throughout the test.
There are also the Frequency Stats to the be found in SetCPU, Android System Info, or I'm sure a host of other apps. They show you how long your CPU has spent at any given frequency. The only catch is that I don't know how to reset those stats (as it's not really a function I use).
Since you are concerned with power use, you would also want part of your logging to include mA current being drawn from the battery.
Just brainstorming. There are a lot of ways you could set up more controlled tests.
OK, so digging a little bit, this should be even easier than I thought. The Frequency Stats are contained in /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
It looks like rebooting can reset them, but I haven't yet figured out a way to reset them without resetting the device. But it doesn't really matter Once you come up with a testing script, you can have it store a copy of time_in_state at the very beginning of the test, and then again at the end of the test. That way, you can simply compare the time_in_state at the end of the test to the one at the beginning to see just the influence of that test.

How to undervolt and get better battery life. Please post your results and how to.

Hey all, this is a thread I saw on different forum and think it is would be good for noobs like myself to benefit from. How to undervolt your CPU and also post your Galaxy Note 2 specific results. I have tried these next steps, and so far I'm doing okay (can't give an accurate results on battery life yet). Like I said (I'm not ashamed to say I'm a noob) but if others can throw their two cents in, we can all learn and this thread can be useful. The next part was cut and paste d from other forum. And I deleted the url for the kernel and root
Prerequisites:
1. Must be rooted and recommended kernel
2. Download and install System Tuner
3. Download and install Stability Test
Steps:
1. Open System Tuner and select CPU
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
2. Drag the slider shown in the picture to overclock or underclock CPU. In this picture we are overclocking to 1.8ghz
3. Select Voltage at the top to get to CPU voltage settings.
4. Ok, here select the buttons as they are in the picture.
a. Select the Green circled button to save current stock default settings.
b. Select the Yellow circled button 4 times exactly to reduce the millivolts by 100.
Stability Testing:
Now we really should make sure that it can handle it under load right? :silly:
1. Open Stability Test and select CPU+GPU Stability Test.
2. Select Full Details - Proceed.
3. The app will now start stressing your cores. I waited until at least 10 cpu passes before quiting the app...
Cliffnotes:
-By default, your settings will revert back after you restart your phone. You can set them to load at boot, but don't do this unless your absolutely sure that they're stable!
Open System Tuner - CPU - Menu key - Settings - Active Tweaks - Reapply CPU Settings - On Boot Completed
-Whenever i tried to lower the mv more than 100 below stock at 1.8ghz, my phone rebooted
-I am in no way responsible for anything that might happen after performing the above, even if you start your sentence with the word "but"
-here's stock settings in case you need to revert
[/QUOTE]
This is an interesting project but I would think that the average user would not need this as battery life is pretty good. Speaking for myself, I am able to get through the whole day without any issues.
Of course there might be other reasons why someone would want to do this.
Doc
Thanks
Sent from my SGH-I777 using xda premium
DocEsq said:
This is an interesting project but I would think that the average user would not need this as battery life is pretty good. Speaking for myself, I am able to get through the whole day without any issues.
Of course there might be other reasons why someone would want to do this.
Doc
Click to expand...
Click to collapse
from what i've read, undervolting save very little battery time as the processors are pretty efficient anyways. i don't have actual numbers, but i'd guess you'd get a few extra minutes - which some may really need.
it's that freaking gargantuan screen that sucks the most juice. there used to be a mod to undervolt displays. they had it working on an OG galaxy tab. i never really seen it used anywhere else.
I have an international version of galaxy note 2. I'm currently using AllianceROM and Perseus kernel. And my stock voltage is way way higher than yours. Like 1400mV mine, 913mV yours. Can I undervolt my note 2 to same specifications like yours? Thanks.
This is interesting but setcpu when I had it on my last phone worked awesome and was very easy to use.
Sent from my Amazing Galaxy Note 2!
rjisanandres said:
I have an international version of galaxy note 2. I'm currently using AllianceROM and Perseus kernel. And my stock voltage is way way higher than yours. Like 1400mV mine, 913mV yours. Can I undervolt my note 2 to same specifications like yours? Thanks.
Click to expand...
Click to collapse
You is 1400 mV on 200 MHz? It's probabky 1400 on 1.6 ghz.
Sent from my SCH-I535 using xda premium
I also have Perseus kernel overclocked but still have great battery life. Thanks for the tip though might try it and compare the difference just in case.
I agree with DocEsq.. It is interesting indeed, but is it really necessary?
Can you overclock it?
My note 2 seems to be charging forever after undervolting. I'm talking for about 6-7hrs charging time here. What seems to be the problem? I'm using Perseus kernel. TIA!
Sent from my GT-N7100 using Tapatalk 2
I once conducted a test with my evo3d. I basically ran an amp meter inline with the battery. Measuring the exact power consumption. I dont remember the exact specs, but undervolting and underclocking my phone compared to stock made a very minute difference in actual power consumption. A difference of about 8-15ma. This was during a CPU full load scenario for about 10 seconds. Even loading the CPU with the screen off to take as many variables out as possible it was very little difference. During normal operarion the power consumed was virtually identical.
So the 2 to 3% of the day (overall time) your phone is actually under HEAVY load, it won't make much difference. It did make a performance impact. So not much benefit, just reduced performance.
Now overclocking and/or overvolting did make a larger difference in consumption at high constant load.
Want to ACTUALLY make a large impact on your battery life? Make sure you don't have any apps preventing your phone from sleeping and run the absolute lowest screen brightness you can stand.
YMMV.
Sent from my Galaxy Note 2 using Tapatalk 2
The benefit I found from undervolting isn't better battery life, it's reduced heat which in heavy use provides better performance due to no cpu throttling. I'm running 1800mhz using less battery than 1600mhz and with same temps as stock. Very stable, been running this for a month now at least.
Action B said:
The benefit I found from undervolting isn't better battery life, it's reduced heat which in heavy use provides better performance due to no cpu throttling. I'm running 1800mhz using less battery than 1600mhz and with same temps as stock. Very stable, been running this for a month now at least.
Click to expand...
Click to collapse
What app did you use to undervolt?
Sent from my Amazing Galaxy Note 2!
yankees45us said:
What app did you use to undervolt?
Sent from my Amazing Galaxy Note 2!
Click to expand...
Click to collapse
I'm using the stweaks app that comes with perseus kernel.. I've undervolted quite a bit and I get better battery life.. Still not quite as good as I had stock, but definitely a lot better for being over clocked.. I just reduce each level to the level below it and run for a few to check stability and keep going from there.. So far I have had no trouble at all with undervolting.. Certainly nothing like I did with my elte.. Here's where I've been for almost a week as well as today's battery results so far with Pandora playing over 3 hours straight and moderate use..
Sent from my SPH-L900 using Tapatalk 2
Yeah, just to let you know that there certainly isn't a linear correlation between undervolting and underclocking and power usage. That might have been the case in simpler times, but with modern multi-core microprocessors, you might actually be decreasing battery life by screwing with your clock rate or voltage. Yes, the defaults err on the side of caution, but it's a whole lot of work for little to no gain.
For example, by reducing your phone's clock rate, you might actually be forcing your phone to be spending more time at load; thereby not allowing it to fallback to its sleep state. There is also something called the power wall, where an increase in operating frequency requires an exponential increase in power. However, the reverse is also true. It can be counter-intuitive to think of it this way, so a practical example is how on a 100 mile trip, a 25 mpg sedan saves 4 gallons of gasoline over a 12.5 mpg SUV. However, over the same distance a 50 mpg hybrid saves only 2 gallons over the 25 mpg car. By that same logic, a mythical 100 mpg vehicle would only save 1 gallon of fuel. It's the law of diminishing returns. Then of course, there are the stability issues that you should take into account.
There is a lot that happens behind the scenes regarding power management. Your phone is capable of intelligently scaling it's processors, voltages, and frequencies up or down all based on current and expected demand. There are people who spend a lot more time doing this for a living, and the idea that you can do it better is probably a falsehood. If you want MOAR POWER, by all means overclock/overvolt it (just don't fry it), but trying to get an extra couple minutes of run time is likely a waste of some hard work. It's the software that kills your battery, not the hardware.
Talking about computer architecture can be complicated and boring, but start with searches on "rise time" and "logic level transitions" if you want to want more background.
Action B said:
The benefit I found from undervolting isn't better battery life, it's reduced heat which in heavy use provides better performance due to no cpu throttling. I'm running 1800mhz using less battery than 1600mhz and with same temps as stock. Very stable, been running this for a month now at least.
Click to expand...
Click to collapse
Interesting... whenever I'm dling using a torrent client my phone gets a nasty fever and I've gotta set it down somewhere as it will literally make me sweat, lol. I do b there think I'll be undervolting just for that specific circumstance but that is a very interesting concept...
anishannayya said:
Yeah, just to let you know that there certainly isn't a linear correlation between undervolting and underclocking and power usage. That might have been the case in simpler times, but with modern multi-core microprocessors, you might actually be decreasing battery life by screwing with your clock rate or voltage. Yes, the defaults err on the side of caution, but it's a whole lot of work for little to no gain.
For example, by reducing your phone's clock rate, you might actually be forcing your phone to be spending more time at load; thereby not allowing it to fallback to its sleep state. There is also something called the power wall, where an increase in operating frequency requires an exponential increase in power. However, the reverse is also true. It can be counter-intuitive to think of it this way, so a practical example is how on a 100 mile trip, a 25 mpg sedan saves 4 gallons of gasoline over a 12.5 mpg SUV. However, over the same distance a 50 mpg hybrid saves only 2 gallons over the 25 mpg car. By that same logic, a mythical 100 mpg vehicle would only save 1 gallon of fuel. It's the law of diminishing returns. Then of course, there are the stability issues that you should take into account.
There is a lot that happens behind the scenes regarding power management. Your phone is capable of intelligently scaling it's processors, voltages, and frequencies up or down all based on current and expected demand. There are people who spend a lot more time doing this for a living, and the idea that you can do it better is probably a falsehood. If you want MOAR POWER, by all means overclock/overvolt it (just don't fry it), but trying to get an extra couple minutes of run time is likely a waste of some hard work. It's the software that kills your battery, not the hardware.
Talking about computer architecture can be complicated and boring, but start with searches on "rise time" and "logic level transitions" if you want to want more background.
Click to expand...
Click to collapse
Like the way you put that. Good analogies there it just seems like the other day that undervolting was the hip thing to do. Technology just moves at such a wonderful pace though. Just one little FYI though, since i do like you analogy i would like to point out that the law of diminishing returns actually refers to something else entirely. I know, I know, nitpicking, but it's just that everyone is always off the mark with that one and, well I guess I'm just an anal ahole (and an economics major, ,which I guess just overall makes me an a hole, ,lol)
If you have ever pulled apart a laptop and saw how much thermal paste the engineers at the factory "designed" for their to be on there, or seen the air/fuel ratio most cars roll off the lot with, or ever replaced an intake in a vehicle with a high performance unit I'm not sure you would feel the same way about you yourself not being to do a better job.
I get the point, and I believe often there is validity to that point, but sometime things just aren't that simple. This is where power gains come from in tuning a car (which i do). This is where efficiency is raised by removing restrictive components in a vehicle (intake, exhaust, etc) and where cooling performance is increased on a CPU with the proper application of a quality thermal paste.
Whenever time is money, and you are deciding between your bottom line and something that works and something that works as well as it can, shortcuts are made and corners are cut. Perhaps they could have spent another 200 hours for the team to absolutely optimize the processor for each device, but the cost would have been an additional $20,000 dollars. This is not always the case, but with processors I think it is. I will undervolt everytime and I do take objective measures for battery and I agree gains are relatively small. For cooling, I found the difference to be very significant at 1800, mhzI didn't check at 1600mhz, however. I can run a full Antutu benchmark as much as I want at room temperature and never exceed the throttling point (70 C if i remember correctly). Now, I am in no way saying these are facts, these are opinions, so I could be wrong of course.
Psychotic-Cerebellum said:
Interesting... whenever I'm dling using a torrent client my phone gets a nasty fever and I've gotta set it down somewhere as it will literally make me sweat, lol. I do b there think I'll be undervolting just for that specific circumstance but that is a very interesting concept...
Like the way you put that. Good analogies there it just seems like the other day that undervolting was the hip thing to do. Technology just moves at such a wonderful pace though. Just one little FYI though, since i do like you analogy i would like to point out that the law of diminishing returns actually refers to something else entirely. I know, I know, nitpicking, but it's just that everyone is always off the mark with that one and, well I guess I'm just an anal ahole (and an economics major, ,which I guess just overall makes me an a hole, ,lol)
Click to expand...
Click to collapse
The TIM wasn't put on there by the engineers who designed the chips; they are put there by workers being paid next to nothing.
Your phone doesn't have a CPU, it doesn't even use thermal paste; it's usually just a rubber contact patch and passive heat dissipation. This actually brings another point where overclocking can sometimes reduce performance due to throttling by thermal constraints (why our phone has such a low GPU rate than what it is capable of in other phones with better thermal envelopes).
You aren't replacing the SoC, you are changing the software that determines how to set the voltage/clock multiplier. The car analogy isn't valid.
And I stand corrected regarding the Law of Diminishing Returns; never paid attention in macro-econ. I think was because my prof. was more interested in forcing his political ideology upon us than actually teaching the subject. :silly:
EDIT: Keep in mind, the engineers rarely get what they want. The product the consumer ends up getting is usually dictated through a collaboration of what the business and marketing teams want. The engineer might request a large cooler clamp with a perfectly lapped surface and a carbon-based TIM. In reality, the consumer gets a dinky fan with melt-on TIM and retention springs. Money talks.
anishannayya said:
The TIM wasn't put on there by the engineers who designed the chips; they are put there by workers being paid next to nothing.
Your phone doesn't have a CPU, it doesn't even use thermal paste; it's usually just a rubber contact patch and passive heat dissipation. This actually brings another point where overclocking can sometimes reduce performance due to throttling by thermal constraints (why our phone has such a low GPU rate than what it is capable of in other phones with better thermal envelopes).
You aren't replacing the SoC, you are changing the software that determines how to set the voltage/clock multiplier. The car analogy isn't valid.
And I stand corrected regarding the Law of Diminishing Returns; never paid attention in macro-econ. I think was because my prof. was more interested in forcing his political ideology upon us than actually teaching the subject. :silly:
EDIT: Keep in mind, the engineers rarely get what they want. The product the consumer ends up getting is usually dictated through a collaboration of what the business and marketing teams want. The engineer might request a large cooler clamp with a perfectly lapped surface and a carbon-based TIM. In reality, the consumer gets a dinky fan with melt-on TIM and retention springs. Money talks.
Click to expand...
Click to collapse
1. The voltages are set by an engineer, that is what I was referring to.
2. The CPU thing was an analogy as was the car. Not a direct comparison. The analogy is referring to how there is set fuel and timing tables just like there is set voltage tables, both might not be the most efficient from the factory, tweaking them can improve things. How is this completely not valid?

governor strategy

I've been thinking a lot about governors lately.
I'm thinking now that you want the cpu to ramp up as fast as possible to complete the task as fast as possible and then go back to sleep, i.e. ondemand.
A given task takes a specific number of clock cycles to complete so your clock frequency simply dictates how long until the task completes.
A cpu has static losses, leakage currents and whatnot, that are there regardless of frequency.
So unless your energy per clock cycle goes up with frequency, it seems you'd want to run as fast as possible to minimize static losses.
I also would guess you want the second core to stay off as much as possible.
Any thoughts or opinions?
MrTallboy said:
I've been thinking a lot about governors lately.
I'm thinking now that you want the cpu to ramp up as fast as possible to complete the task as fast as possible and then go back to sleep, i.e. ondemand.
A given task takes a specific number of clock cycles to complete so your clock frequency simply dictates how long until the task completes.
A cpu has static losses, leakage currents and whatnot, that are there regardless of frequency.
So unless your energy per clock cycle goes up with frequency, it seems you'd want to run as fast as possible to minimize static losses.
I also would guess you want the second core to stay off as much as possible.
Any thoughts or opinions?
Click to expand...
Click to collapse
Sounds a lot like ktoonservative.
Aerowinder said:
Sounds a lot like ktoonservative.
Click to expand...
Click to collapse
Yeah, ktoonservative lets you configure pretty much everything. The thing I was struggling with was setting up_threshold and sampling rate. It seems like depending how fast it's evaluating load, processes could build up and force the second core on when it isn't really needed. It seemed like the 2nd core turned on less with a faster sampling rate.
I don't know the down side of sampling too fast.
Pegasusq seems pretty cool in that the 2nd core turns on based on frequency and queue rather than just load. You can pretty much control exactly when the 2nd core comes on.
I'm trying out msm-dcvs right now even though I don't really know what it does and it's apparently not configurable. I'm not on ktoonsez at the moment so I don't have many choices.

Cooling mods [hardware]

Hi all!
I have been noticing that the tablet can get fairly hot where the CPU is, and under load it can reach fairly high temperatures - CPU prime got it up to over 90°C for me to the extent that I had to shut it down.
To be honest, it doesn't really impede normal usage, and normally it seems to reach slightly over 70°C under higher workloads. I suppose that's not unheard of for ARM devices and might not actually count as overheating. But after seeing this video on the Teclast X98 Pro and some other info on modding in tablets, I was still wondering if there'd be a way to improve the cooling on the Note 10.1 2014 to get lower average temperatures - potentially, that should also lead to more stable and fluid running under high loads, as there won't be any need for throttling, and it might also be good for the components to keep temps lower.
So I guess my main question is if anyone has undertaken anything of this sort for this or comparable tablets? @thebadwrench has recently posted a very useful guide about swapping the battery with a rare shot of the inside of the tablet: http://forum.xda-developers.com/showpost.php?p=66124495&postcount=13
I was thinking what the most sensible way could be to improve cooling of the CPU, which should be the small shielded unit in the lower centre of the second picture. People seem to have had good results with copper, but it seems fairly crowded in there and it might be hard to get it installed without shortening anything.
Aside of the more practical question, I'd also be interested in the typical temperature that other people's tablet reaches and if you have any better apps than CPU prime to produce high CPU load - possibly one that shows CPU temperature at the same time as well? Currently, I'm having another app running to check CPU temp (CPU prime for some reason only shows the battery temp).
Looking forward to everyone's answers!
PS: @mods Not sure if this is the right section of the forum, feel free to move if you feel it fits better elsewhere.
AFAIK Microsoft intended to fit an innovative kind of heat sink into their Lumia 950 and finally produced a standard design w/o particular cooling devices due to difficulties.
I have no clue how anything could be done. Except replacing the back cover with something thicker, offering room for heatsinks, fans, peltier elements or such.
But the Note should at least have thermal throttling and emergency shutdown features, like all current phones, which will throttle within the first half minute under full load.
franzli said:
Hi all!
I have been noticing that the tablet can get fairly hot where the CPU is, and under load it can reach fairly high temperatures - CPU prime got it up to over 90°C for me to the extent that I had to shut it down.
To be honest, it doesn't really impede normal usage, and normally it seems to reach slightly over 70°C under higher workloads. I suppose that's not unheard of for ARM devices and might not actually count as overheating. But after seeing this video on the Teclast X98 Pro and some other info on modding in tablets, I was still wondering if there'd be a way to improve the cooling on the Note 10.1 2014 to get lower average temperatures - potentially, that should also lead to more stable and fluid running under high loads, as there won't be any need for throttling, and it might also be good for the components to keep temps lower.
So I guess my main question is if anyone has undertaken anything of this sort for this or comparable tablets? @thebadwrench has recently posted a very useful guide about swapping the battery with a rare shot of the inside of the tablet: http://forum.xda-developers.com/showpost.php?p=66124495&postcount=13
I was thinking what the most sensible way could be to improve cooling of the CPU, which should be the small shielded unit in the lower centre of the second picture. People seem to have had good results with copper, but it seems fairly crowded in there and it might be hard to get it installed without shortening anything.
Aside of the more practical question, I'd also be interested in the typical temperature that other people's tablet reaches and if you have any better apps than CPU prime to produce high CPU load - possibly one that shows CPU temperature at the same time as well? Currently, I'm having another app running to check CPU temp (CPU prime for some reason only shows the battery temp).
Looking forward to everyone's answers!
PS: @mods Not sure if this is the right section of the forum, feel free to move if you feel it fits better elsewhere.
Click to expand...
Click to collapse
Similar temperatures are note uncommon in mine. One suggestion is to use a small desktop fan and aim it down at the tablet when your demanding alot from the cpu. I sometimes do that with mine and it actually brings the temperature down about 15 degrees. Its not a mod, but it does work
Thanks for your answers so far!
@lecorbusier yes, I suspect it has throttling, but in the interest of better running it would be nice to avoid throttling when possible. I'm not sure about the effect on battery life - throttling might be good in that a reduced frequency might need less energy, but running hot in the first place is probably bad for battery life.
In fact, part of my problem might stem from either the ROM or some apps I am running - Squid on temasek's CM13. Maybe I just never noticed this before, or didn't use squid so often, but I've noticed that the last couple of days CPU gets up to over 70°C at times with just some writing in squid. Not sure if this is normal, will probably post it in the CM13 thread. But my general idea/wish to improve cooling still stands independently of that.
Similar temperatures are note uncommon in mine. One suggestion is to use a small desktop fan and aim it down at the tablet when your demanding alot from the cpu. I sometimes do that with mine and it actually brings the temperature down about 15 degrees. Its not a mod, but it does work
Click to expand...
Click to collapse
That sounds like an effective method (and I guess in a way one might call it a mod ). I'm thinking about something more portable, and hence passive though.
I will probably try opening up and having a look at the current cooling mechanism to see if adding a copper shim or a better silicone heat sink etc. might help things. Another consideration would be a modded case that contains some metal instead of plastic on the back side. That might help to take away some of the heat even though the plastic back of the device itself probably remains a poor heat conductor. Might be a complicated mod, but I'll see if I can come up with a way to do that. If/when I manage to get something done, or some new thoughts, I will advise here.
Any further input of course still very welcome!
Metal will disturb the various antennas.
A back cover replacement containing one or two fans, adding 1 to 2cms of thickness, and draining the battery with the fans while looking clumsy, thats the "best" solution I could imagine.
Or a back cover replacement containing one or two copper plates, cut and arranged in a way that the antennas aren't too handicapped. Probably you have to remove the various EMI shields to be able to establish direct contact between the chipset and the plates. That is, if the chips don't have contact with the shield plates.
I think this will be something never been done before, but probably after.
Like the battery mod for phones, where you solder one battery together with a second one and cut a hole in the back cover, that the now double-thick battery may fit. That's already been done.
Good point about the antennae, I hadn't thought about that! That also makes sense of the lack of metal cases (facepalm). Might still try modding a case with some metal in some spots at some points, but good to keep in mind how this might impact wifi and bluetooth.
My plan was to see if there'd be a chance to fit some slim copper plates in strategic position on top of the CPU inside the normal case. I'll have to open it up and see how much, if any, space there is - but will probably try this first on a Galaxy Tab S 8.4 that I rely on less for productivity (and that does actually get way to hot, to the point of self-shutdown). Whenever I find the time that is...
Will report when I get around to doing anything on the Note (and might open a topic at the Tab S forum in case I do try a mod there first).
I added a copper shim for cooling to my Galaxy Tab S (will put a more detailed post on that forum when I find some time), which seems to have helped to control temperatures somewhat better. I had two odd crashes, but had some before I did the mod, so am relatively confident that's a problem of the ROM rather than my mod.
Will probably try it on my Note as well soon and report here for anyone who might be interested.
Have modded my Note now, and am planning to post a more detailed description some time (won't have time before next month though). It had clearly improved temperatures and stability of my Tab S, but I'm not sure how much of a difference it made on the Note 10.1 2014 because I didn't measure the baseline temperatures before the mod right (used CPU Prime benchmark which seems to have general stability issues on the temasek ROM I'm using).
Currently, I have idle temperatures of around 30C, under normal use it would get to 40-50C, and under stress (app StabilityTest) it goes up to around 89/90C after 5min and to 92/93C after 10min.
I'd be quite interested in what temperatures other people get on their devices without any modification?
franzli said:
Have modded my Note now, and am planning to post a more detailed description some time (won't have time before next month though). It had clearly improved temperatures and stability of my Tab S, but I'm not sure how much of a difference it made on the Note 10.1 2014 because I didn't measure the baseline temperatures before the mod right (used CPU Prime benchmark which seems to have general stability issues on the temasek ROM I'm using).
Currently, I have idle temperatures of around 30C, under normal use it would get to 40-50C, and under stress (app StabilityTest) it goes up to around 89/90C after 5min and to 92/93C after 10min.
I'd be quite interested in what temperatures other people get on their devices without any modification?
Click to expand...
Click to collapse
Thanks for the update. I did some baseline checks for you, using the same StabilityTest app for consistancy purposes. I am also on temaseks build, cm13 more specifically. I run temaseks 12.1 build just as often as the cm13, so I will run the tests there as well. I revert back to my stock rooted kitkat rom about 1 or 2 days per week so I'll check the temps on that ROM as well.
So, at idle I'm a little warmer than you, hovering between 37C and 40C. Under normal use (like web browsing) I'm between 50C and no higher than 57C. Under stress (again, using same app) I was at 90C at 5 minutes and 91C after 10 minutes. So slightly warmer on low end, nearly identical on the big end. I have the samsung flip cover thats specifically made to fit the 2014 edition on mine, so that could account for my slightly warmer temps. Its worth noting that when gaming on a VERY cpu demanding game, I never reach anything above 78C. Its probably one of the top 10 most cpu demanding games on play store and BY FAR the most I ever demand from my CPU, consuming a whooping 1.5-2Gb of RAM at times.
I'll check the numbers on my other 2 normally used ROMs here in the next few hours and I'll post those results too :good:
On a side note, my galaxy s6 phone (completely stock, near new) averages nearly indentical cpu temps and after researching the matter on it, I found that those temps (on the s6) are what others are getting as well. So it seems that, generally speaking, samsungs might just run with warmer temperatures. I did see somewhere that 100C is kinda the 'YIKES!' point for them and that they start clocking down around that temp to prevent permanent damage
franzli said:
I'd be quite interested in what temperatures other people get on their devices without any modification?
Click to expand...
Click to collapse
Ok, I've done some testing with a few different ROMs and I think you might be as susprised with the results as I am. First of all I need to correct myself in my last post. The initial testing I did was on temaseks unofficial CM12.1 build, not on the CM13 build. I have now tested on temaseks cm 12.1 and cm13 builds, my stock rooted & debloated 4.4.2 ROM and an old nandroid backup I have of hyperdrives 4.4.2 ROM. Heres what I found...
Temaseks CM13 build ran the hottest and was by far the most stressful on the processors and therefore ran the hottest. It consistantly kept the CPU clocked at near max (even when set to "ondemand"), whether needed or not (with no background process running) and would only reduce power when forced via CPU governor or was at the safety threshold for temperature, which I can now comfortably say is about 95C. Tablet was slightly warm to the touch at idle with a temperature of between 50C & 55C. Under moderate load temperature jumped very raidly to the mid 80C range and then would stay there pretty steadily. Under heavy load, CPU temp quickly peaked at 94C where while watching the CPU output, it was obvious the CPUs were going in & out of protection mode as they would drop to 1600MHz, then peak at 1900MHz, 1600MHz, 1900MHz & repeat this. I didnt let this go on for more than about 2 min before shutting down and allowing tablet to cool.
Next, I repeated tests on both touchwiz based kitkat ROMs I have backups for. 1 of them is stock, rooted, debloated and un"tweaked". The other is stock, rooted, debloated and tweaked. Both ran MUCH cooler, peaking at 80C & 82C. These were ocassional spikes and actually averaged around 75C when under heavy load. Now comes the good news...
I have identified a major contributor of excessive CPU temps. When testing on the touchwiz ROMs and observing CPU clocking in relation to CPU temps, I found that the governors are set lower in these touchwiz ROMs. They were a steady 1300MHz with the occasional 1600MHz spike. They averaged 55C to 63C under moderate load and when under heavy load never reached more than 82C.
So, I am now back on my long time daily driver, temaseks cm12. 1 build and I'm ditching the CM13 build entirely. At least for now. I have set my CPU governors down to 1300MHz and with heavy load for nearly 30 minutes (gaming) my CPU peaked at 85C. So my findings were that CM ROM has overclocked the CPUs excessively. They are set to 1900MHz, which has become obvious to me brings them right up to their temperature safety threshold, 95C. It seems Samsung clocked them at 1300MHz and allowed for occasional spikes above this point, keeping them at a maxium & slightly more reasonable 85C a full 10C cooler than their maximum safe operating temp.
I never expected I'd stumble on not only a source, but also that I've been utilizing the solution for months. I should add that governing the CPU lower has had absolutely no effect on performance. I regularly shut down 1 or 2 CPU cores as it is. I found that the tablet will run perfectly under normal use with only 2 cores. This reduces temperature and increases battery life. Sluthing can be so much fun sometimes, it was right in front of my face I just never put 2 & 2 together lol :good:
Thanks for your detailed comparison, that's very helpful indeed! In light of that, I think my mod has indeed given some improvement, as I don't reach over 90°C on CM13 until after 5-10 min, albeit with some throttling to 1700MHz after about 10min.
I've always had the impression that the current CM13 builds are a bit more CPU hungry and run warmer (possibly that triggered my thinking about a cooling mod in the first place), so it's very interesting to see that backed up experimentally! Interestingly, I've had mixed experiences with CM13, almost like two "modes" of running - sometimes, it runs pretty warm, roughly like you describe, but at other times it runs fairly normally around 30-40°C without problems. Haven't really figured out what the problem is and am having occasional instabilities/reboots as well, so I might actually also return to CM12.1 for the moment too.
While the higher CPU clocks (although 1.9GHz is the specified clock speed, but I get what you mean) may explain the heat and slightly better results in Geekbench I've been having with CM13, it's a bit odd that I still get the good result when the ROM is in the cool "mode" (it goes up to high 60s, mid 70s during Geekbench if memory serves well).
How do you set your governors? And have you been able to get the cores to switch on and off automatically as they do on some other devices? Or is this not implemented in the kernel or something?
franzli said:
Thanks for your detailed comparison, that's very helpful indeed! In light of that, I think my mod has indeed given some improvement, as I don't reach over 90°C on CM13 until after 5-10 min, albeit with some throttling to 1700MHz after about 10min.
I've always had the impression that the current CM13 builds are a bit more CPU hungry and run warmer (possibly that triggered my thinking about a cooling mod in the first place), so it's very interesting to see that backed up experimentally! Interestingly, I've had mixed experiences with CM13, almost like two "modes" of running - sometimes, it runs pretty warm, roughly like you describe, but at other times it runs fairly normally around 30-40°C without problems. Haven't really figured out what the problem is and am having occasional instabilities/reboots as well, so I might actually also return to CM12.1 for the moment too.
While the higher CPU clocks (although 1.9GHz is the specified clock speed, but I get what you mean) may explain the heat and slightly better results in Geekbench I've been having with CM13, it's a bit odd that I still get the good result when the ROM is in the cool "mode" (it goes up to high 60s, mid 70s during Geekbench if memory serves well).
How do you set your governors? And have you been able to get the cores to switch on and off automatically as they do on some other devices? Or is this not implemented in the kernel or something?
Click to expand...
Click to collapse
Your welcome. I too noticed that on CM13 at times it seems to run alot cooler than at other times. Although the only time I ever see go as low as 30C is when its been asleep for awhile and then I turn the screen on (CM12 & 13). As soon as it wakes up it'll go to mid-high 40C to mid 50C (on CM12) or it'll go straight to high 50C to low 60C (CM13). CM13 definitely ramped up alot quicker when testing, almost like its either min or max CPU power. I like temaseks CM13 build, but for me there wasnt much improvement over the CM12 build. Plus there is a few minor bugs as well as the slight negative effect on battery life I noticed. Plus I was noticing that there was a bit of a touchy spot in the top right corner of my screen that when swiped from the outside in, it sometimes crashed my tablet. I wasn't sure if it was a fault in my tablets hardware or something software related and I'm still not 100% positive which it may be, but since I began taking notice of when it was happening, its only ever happened on CM13. Thats also part of the reason I think I'm going to hold off on using the CM13 build for awhile. CM12 build is overall just more to my liking I guess... more to my tablets liking as well.
After posting yesterday I looked up some specs on Samsungs website and you are 100% correct about it being 1.9GHz. This is the spec copy/pasted off their website... Exynos® 5 Octa (1.9GHz Quadcore + 1.3 GHz Quadcore). The second part stands out because 1.3GHz is definitely where the stock rom was trying to maintain its CPU frequency when under heavy load. Not once did it exceed 1.6GHz. Whereas both CM builds ramped up to the full 1.9GHz very quickly. So the difference is going to be HOW the processor steps up in frequency as opposed to what the frequency actually is. Thats where my knowledge on that kinda stuff ends. I'm a "let's figure out what failed and why" or "lets figure out how it works" type of person. Thats why I work on cars for a living. I leave the development and detailed technical mumbo jumbo to the devs and engineers. Troubleshooting methods are much the same for just about everything though, hince how I came to my conclusion yesterday. Just for grins I may load up PAC ROMs CM12 build, see how it does. too...
As for how I set my governor, it depends on what I doing at the time. I never fine tune anything, like I said, that's outside my realm of knowledge. What I do set is the governor to either interactive or ondemand. Interactive more for casual use and ondemand more for gaming. I also manually shut down CPU cores depending on my demand from my CPU. Right now, for instance, I'm running stricly on cores 0 & 2 with cores 1 & 3 turned off. My CPU max clocking frequency is set to 1.3GHz but its consistantly hovering at 650MHz, or .65GHz. Thats all I ever mess with and I do so mainly for battery life. It makes a noticeable difference (both charging and discharging) if I adjust those 3 things according to my use. And no, my cores don't ever switch on or off automatically. I do vaguely recall seeing them do that on a different ROM, but I don't remember what ROM that was... it was at least a year ago that I saw that. I'm sure that is something that is kernel related, but I'm just guessing on that one.
What exactly did you mod? Any pictures?
thebadwrench said:
Your welcome. I too noticed that on CM13 at times it seems to run alot cooler than at other times. Although the only time I ever see go as low as 30C is when its been asleep for awhile and then I turn the screen on (CM12 & 13). As soon as it wakes up it'll go to mid-high 40C to mid 50C (on CM12) or it'll go straight to high 50C to low 60C (CM13). CM13 definitely ramped up alot quicker when testing, almost like its either min or max CPU power. I like temaseks CM13 build, but for me there wasnt much improvement over the CM12 build. Plus there is a few minor bugs as well as the slight negative effect on battery life I noticed. Plus I was noticing that there was a bit of a touchy spot in the top right corner of my screen that when swiped from the outside in, it sometimes crashed my tablet. I wasn't sure if it was a fault in my tablets hardware or something software related and I'm still not 100% positive which it may be, but since I began taking notice of when it was happening, its only ever happened on CM13. Thats also part of the reason I think I'm going to hold off on using the CM13 build for awhile. CM12 build is overall just more to my liking I guess... more to my tablets liking as well.
After posting yesterday I looked up some specs on Samsungs website and you are 100% correct about it being 1.9GHz. This is the spec copy/pasted off their website... Exynos® 5 Octa (1.9GHz Quadcore + 1.3 GHz Quadcore). The second part stands out because 1.3GHz is definitely where the stock rom was trying to maintain its CPU frequency when under heavy load. Not once did it exceed 1.6GHz. Whereas both CM builds ramped up to the full 1.9GHz very quickly. So the difference is going to be HOW the processor steps up in frequency as opposed to what the frequency actually is. Thats where my knowledge on that kinda stuff ends. I'm a "let's figure out what failed and why" or "lets figure out how it works" type of person. Thats why I work on cars for a living. I leave the development and detailed technical mumbo jumbo to the devs and engineers. Troubleshooting methods are much the same for just about everything though, hince how I came to my conclusion yesterday. Just for grins I may load up PAC ROMs CM12 build, see how it does. too...
As for how I set my governor, it depends on what I doing at the time. I never fine tune anything, like I said, that's outside my realm of knowledge. What I do set is the governor to either interactive or ondemand. Interactive more for casual use and ondemand more for gaming. I also manually shut down CPU cores depending on my demand from my CPU. Right now, for instance, I'm running stricly on cores 0 & 2 with cores 1 & 3 turned off. My CPU max clocking frequency is set to 1.3GHz but its consistantly hovering at 650MHz, or .65GHz. Thats all I ever mess with and I do so mainly for battery life. It makes a noticeable difference (both charging and discharging) if I adjust those 3 things according to my use. And no, my cores don't ever switch on or off automatically. I do vaguely recall seeing them do that on a different ROM, but I don't remember what ROM that was... it was at least a year ago that I saw that. I'm sure that is something that is kernel related, but I'm just guessing on that one.
What exactly did you mod? Any pictures?
Click to expand...
Click to collapse
Hi thebadwrench,
Which app did you use to do all this modifications on cm13 stock kernel? Especially deactivating cores is very interesting. Can you see all eight cores? I'm using 3C toolbox and it shows it only as quad core and on voltage page I have two cpu cluster.(one clocked till 650mhz and the other till 1900mhz)
Under CM13 the cpu behavior is totally different as on stock Samsung roms because the small cores are more or less unused and clocked at max. only at 650mhz, Lol!
I watch also much more kernel warnings in ksmg and high temperatures for a while now on CM13.
Also battery runtimes are only 3,5-5h unlike 7-8h under cm12.1!
Sometimes the cpu is also locked at max. speed(1,9ghz), mostly after looking youtube videos or other heavy load situations. The only way to get back "normal" behavior is to reboot the device.
I see also only two used cpu states all the time it jumps between 250 and 1900mhz, the most steps in between are unused.
We can only hope a real kernel developer can have a look on this or we can cherry pick some usefull tweaks from another device with the same cpu chipset.
ollimi1 said:
Hi thebadwrench,
Which app did you use to do all this modifications on cm13 stock kernel? Especially deactivating cores is very interesting. Can you see all eight cores? I'm using 3C toolbox and it shows it only as quad core and on voltage page I have two cpu cluster.(one clocked till 650mhz and the other till 1900mhz)
Under CM13 the cpu behavior is totally different as on stock Samsung roms because the small cores are more or less unused and clocked at max. only at 650mhz, Lol!
I watch also much more kernel warnings in ksmg and high temperatures for a while now on CM13.
Also battery runtimes are only 3,5-5h unlike 7-8h under cm12.1!
Sometimes the cpu is also locked at max. speed(1,9ghz), mostly after looking youtube videos or other heavy load situations. The only way to get back "normal" behavior is to reboot the device.
I see also only two used cpu states all the time it jumps between 250 and 1900mhz, the most steps in between are unused.
We can only hope a real kernel developer can have a look on this or we can cherry pick some usefull tweaks from another device with the same cpu chipset.
Click to expand...
Click to collapse
I use kernel adiutor https://play.google.com/store/apps/details?id=com.grarak.kerneladiutor It also shows 4 cores but shutting them down is just a single click. In the attached screenshot you can see that I've manually unchecked cores 1 & 2 and on the CPU display (turned on via developer options) you can see that those cores are indeed shut down and not operating. I like the app's widget, allows you to set up as many different profiles as you want and then change between the different profiles on the widget.
thebadwrench said:
I use kernel adiutor https://play.google.com/store/apps/details?id=com.grarak.kerneladiutor It also shows 4 cores but shutting them down is just a single click. In the attached screenshot you can see that I've manually unchecked cores 1 & 2 and on the CPU display (turned on via developer options) you can see that those cores are indeed shut down and not operating. I like the app's widget, allows you to set up as many different profiles as you want and then change between the different profiles on the widget.
View attachment 3732472
Click to expand...
Click to collapse
Yeah, good news!
I am positive surprised that kernel Adiutor is working, seems we have build-in UCI, which is needed, nice! Using KA on my OP2 since a long time but there is no custom kernel for p600 cm13 roms so I have not tried!
Will try it now!:good:
Thanks!!
thebadwrench said:
What exactly did you mod? Any pictures?
Click to expand...
Click to collapse
I replaced the silicone heat pad on the CPU with a copper shim and thermal compound, added some small silicone pads around other components (all under the heat shields) and added a .5mm silicone heat pad on top of the main heat shield to enhance contact with the back plate. I do have some pictures, but I want to provide a proper write-up and currently don't have much time as I'm moving. Will hopefully find a chance to give a more detailed write-up in May - sorry for the delay, but full report is forthcoming!
As for the CM13 issues, @joshndroid apparently implemented some changes to it in the last build, so I might check that out, although I agree that CM12.1 is probably still the safer bet for a stable daily driver.
franzli said:
Thanks for your detailed comparison, that's very helpful indeed! In light of that, I think my mod has indeed given some improvement, as I don't reach over 90°C on CM13 until after 5-10 min, albeit with some throttling to 1700MHz after about 10min.
I've always had the impression that the current CM13 builds are a bit more CPU hungry and run warmer (possibly that triggered my thinking about a cooling mod in the first place), so it's very interesting to see that backed up experimentally! Interestingly, I've had mixed experiences with CM13, almost like two "modes" of running - sometimes, it runs pretty warm, roughly like you describe, but at other times it runs fairly normally around 30-40°C without problems. Haven't really figured out what the problem is and am having occasional instabilities/reboots as well, so I might actually also return to CM12.1 for the moment too.
While the higher CPU clocks (although 1.9GHz is the specified clock speed, but I get what you mean) may explain the heat and slightly better results in Geekbench I've been having with CM13, it's a bit odd that I still get the good result when the ROM is in the cool "mode" (it goes up to high 60s, mid 70s during Geekbench if memory serves well).
How do you set your governors? And have you been able to get the cores to switch on and off automatically as they do on some other devices? Or is this not implemented in the kernel or something?
Click to expand...
Click to collapse
Hi Franzli,
The kernel seems odd to me!
The small A7 cluster is virtually unused and clocked only to 650MHz @ 1200ma !! Normal is 1.3GHz @ 1200ma for the small A7 cluster on 5420! Also a lot of warnings and errors in ksmg!
No idea whether the A7 ever used or permanently in idle mode, Lol!
Also all 4 big a15 cores are always online, what means no hotplug driver available!
I don't know if we will ever see a good kernel for CM13 because of the missing sources.
Although the kernel is running and mostly stable it is far from "good"!
Power consumption is almost doubled, problems with overheating and sometimes cpu is locked at max. speed and the only way to solve it is a reboot.
I don't remember the cm12.1 kernel but he was definately better in terms of battery runtimes and reliability.
BTW, I'll also mod the device cooling using bigger copper sheets instead of the perforated aluminum sheets, thermal-pads and thermal-grease when I start changing my battery and usb jack, what is definately neccessary in my case!
Maybe I will buy one of the small heatpipes used in S7 or so when I find them somewhere.
It is not difficult to adjust it if needed, so that it can replace the heatspreader.
Mabye it is needed to isolate the heatpipe from the mainboard but nothing what a piece of kapton tape not can do.
franzli said:
Hi all!
[...] But after seeing this video on the Teclast X98 Pro and some other info on modding in tablets, I was still wondering if there'd be a way to improve the cooling on the Note 10.1 2014 to get lower average temperatures [...]
So I guess my main question is if anyone has undertaken anything of this sort for this or comparable tablets? [...]
Click to expand...
Click to collapse
Hallo there
Well I just did the job. I have also made a short manual and would like to share it with you. But first some things about me and my tablet.
I bought a used galaxy note 10.1 2014 edition SM-P600 couple months ago. I was really disappointed about the device performance. Switching from stock android 5.1 to [ROM][7.1.2]Resurrection Remix N for SM-P600 (n1awifi) [5.8.5][UNOFFICIAL][NIGHTLY] did some improvements in performance. But since I am a very heavy web surfer I was still not satisfied with the performance. I have also tried [P600][Touchwiz] Marshmallow Rom 20170622 and went back to RR because I can play around with the CPU governors and all that deathy audiutor stuff. Between very nice work Exynos Team and all the other developers...
Soon I realized that the SM-P600 becomes fairly hot in the backside. I took a look at the ifixit pictures. There was no other way finding good resolution pictures of the inside.
I ended up installing cool tool app. Well is there any other good app for monitoring temps, clock and load in overly?
Well so I added frequency, load, battery temp and cpu temp. You need to add cpu temp manually. I guess it is Label ->
custom label -> enable- Then you have to go fine tuning -> custom label -> path:/sys/class/thermal/thermal_zone0/temp. leace everything as it is. regex is (\d+)\d{3} and add postfix °C and prefix cpu:
.
So I went along and analysed heat and temps in the galaxy 10.1 2014 edition. Especially frequency-temp-ratio. And I can tell you this buddy is everything else than cool. Temps jump up so fast I can't tell you. Even some fast scrolling on ebay, facebook desktop web page in browser treated the Temperature to the hight 80s and soon the high 90s. I have also seen the things franzli mentioned before. Even light work put so much heat to the processor. Watching the frequency and temperature bounce was a pain. I could feel the pain that little Exynos 5420 must suffer of all the time.Throttling is the only ways this little buddy can survive To make it short I decided to do the cooling mod...
So lets see what I found on my journey ... I can tell you that's a big surprise
I opened the case very easily. You can find tons of videos on youtube or use ifixit.
Well I have to mention I am an electronics hardware engineer. So doing this stuff is nothing unique for me. And I have years of professional PCB manufacturing, repair experience.
Opening the case, adding some tape and this is what you get...
As you can see there is a little thermal pad applied to the aluminium shielding. And boooom there you are . Do you see all thet flux solder remains? How come samsung? Seriously?
This is the shielding close up with that thermal pad.
As you can see the FBGA package is covered with flux from soldering. So it is naturally, that the cooling in the galaxy is a pain. There can't bee any good heat flow.
So let's check that thermal pad.
woops that little buddy is kinda to small. I am sad to see this.
Well I cleaned the surface as good as I can with ethanol. After this I applied a new Thermal pad.
After that it looked like this.
Then I closed the shielding case and cleaned it.
So next comes the actual cooling mod. I added a big thermal pad.
I had to cut that little hook in the back plate. So that the 100mmx100mm copper layer will fit in shape.
And this is it done.
So what about the results :laugh:
The back plate fits perfectly. If you know there is a thin layer of copper you can feel it. But it is so less. I had no problem closing the case. Ahh yeah I had to tage it with double sided tape, so it is pressed down to the thermal. The back plate will do the rest pressure.
And really don't worry about the wifi interference. There is no worry. Because the copper layer is located on top of the bettery pack and shielding case. Why should there be any interference? I have tried. Reaching same wifi performance as always. No worries:good:
So what about heating. Well my galaxy note stays pretty cool.
I need to mention this is all mesured with the [ROM][7.1.2]Resurrection Remix N for SM-P600 (n1awifi) [5.8.5][UNOFFICIAL][NIGHTLY] I mentioned before.
I used interactive governor.
I reach in Antutu v6.2.7 about 57000 to 58000
In futuremark work 2.0 I get 4000
Here some pics
I am sorry for that high resolution pics. But I wanted best of (bad) quality. I used my redmi note 4 for taking pictures. If you can't read all in the pics, just open in new window.
There isn't any more throttling at all. It is hard to push to 85°C or above now. Just with synthetic GPU and CPU load on all four cores at once. And it takes a couple of minutes. But in real world you will never get it. With only load on one core my maximum is 69 to 72°C. The tablet fells pretty nice now. The warming in the back plate is reduced to a very large surface. So sometimes it fells as if your hands warm up the case.
Can you suggest me any ROm with a good overclocking potential? I have already tried this ROM. I really don't know why, but it keeps crashing all the time at 2GHz or 2.1 GHz. Even with no load at all. I guess the used kernel is bad.
Do you have any ROM suggestion for me.
If you have any quastions and things you want me to test write me.
Just wanted to share my experience with you. I didn't expect a dirty PCB, BGA and thermal pad like this. So what do you think about this.

Best balance in performance+overheating?

I am talking about custom tuned governors, I/O settings and even voltages. Currently running CRdroid and i turned on the cpu info overlay, and even with conservative numbers( cpu 60 C) the phone someties becomes unresponsive.
What i experienced that if you use a performance tuned governor, like intelliactve even tho the boost is apparent it reaches a point where its no longer usable because of overheating. My phone goes into 80C+ zone after like 1 minute of using.
I had 95C cpu one day, had to reboot to cool it. Any tips, and setting to share? :fingers-crossed:
Just do the thermal mod. Put a thermal pad on the RAM chip. I recommend a 1mm pad so you dont run into screen fading issues in the future.

Categories

Resources