*** This project is dead! ***
The CPUfreq governor is responsible for switching between the different CPU frequencies the processor supports. It thus has a critical impact on both the battery runtime as well as the responsiveness of the device.
The two most popular governors which allow a dynamic frequency switching based on the current processor load are 'ondemand' and 'interactive' and I tested both for a few days to compare their performance in different scenarios: While ondemand appears to offer the best battery runtime, the responsiveness is not great which leads to problems during media playback (cracks and stuttering while playing FLACs with stock music app and watching XviD videos with MoboPlayer). On the other hand, with interactive the responsiveness is better, however the frequency scaling appears to be a bit erratic to me and it seems to spend more time in the high frequency states than actually necessary which leads to an increased battery drain. So it seems, both ondemand and interactive each have their own drawbacks and neither one shows a satisfying performance in all scenarios.
Thus I wrote a new governor called 'snappy' based on ondemand implementing the following two improvements: First, instead of using a static sampling rate, the sampling rate is dynamically adjusted depending on the current load; for a uniform load the sampling rate is set to a high value, while for a non-uniform load the time between two samples is decreased. Second, switching to lower frequency states is deferred, which on average allows the CPU to stay in its current state for longer and thus reduces the rate of frequency changes.
The governor can be tuned using three files in the cpufreq sysfs interface 'up_threshold' (default 95), 'down_threshold' (default 40) and 'sampling_rate_max' (default 100000). The current sampling rate is shown in 'sampling_rate_current'.
Changes to the source: http://www.pastie.org/2570142
BUGFIX:
The sampling rate is decreased in 2% steps while it is increased in 1% steps (this should make the sampling rate adjustment more dynamic). Also, the default for the maximum sampling rate is set to 50000.
Bug fix: http://www.pastie.org/2570778
I wrote this governor yesterday and so I did not have much time for testing. Thus your feedback is highly appreciated. Also, I did not play around much with the three parameters - so there is probably much room for improvement.
I do not accept donations and since I reached my 50GB limit of free space on SpiderOak, thanks to all of you kind people who got an account using my referral link, I could not ask for more.
Instead if you really want to donate your hard earned money to someone who deserves and needs it, consider donating to the Free Software Foundation at fsf.org: These guys are at the frontline when it comes to keeping Linux free and fighting these greedy bastards who think they are entitled to collect royalties and other fees from Linux users due to some silly patents - and if Linux falls, Android will be next.
*** This project is dead! ***
nice!
cant wait to try this out
the idea sounds good, i'd like to test it!
have you checked smartass, btw?
Really nice, I hope morfic will implement it in his kernels.
Sent from my Nexus S using XDA App
Sweet I will be watching this.
Sounds cool. Can't wait to be able to try this
Sent from my Nexus S 4G using XDA App
Cool! Nice idea.
Woah sweet.
Maybe this will get people off that "smartass" governor kick everyones been on.
Very nice work man. I particularly like how you make it sound like creating a CPU governor is about as much work as making a grilled cheese haha
igor.tonky said:
the idea sounds good, i'd like to test it!
have you checked smartass, btw?
Click to expand...
Click to collapse
I also checked smartass and it did behave pretty similar to interactive.
kenvan19 said:
Very nice work man. I particularly like how you make it sound like creating a CPU governor is about as much work as making a grilled cheese haha
Click to expand...
Click to collapse
Actually most of the time I have no idea what I am doing. I am just a mad man with a Nexus S.
I made a few adjustments to snappy:
The sampling rate is decreased in 2% steps while it is increased in 1% steps (this should make the sampling rate adjustment more dynamic). Also, the default for the maximum sampling rate is set to 50000.
Bug fix: http://www.pastie.org/2570778
thanks for all your contributions thus far for the NS. looking foward to more of your work!
Is this in essence a conservative governor with a dynamic sampling rate?
morfic said:
Is this in essence a conservative governor with a dynamic sampling rate?
Click to expand...
Click to collapse
No. It still behaves like ondemand when increasing the frequency, i.e. goes to the maximum frequency available. I also thought about that, but I think it makes most sense to keep it this way, because one is on the safe side and will not end up with a frequency which is too low to handle the load because of a bad estimate (which could cause lags) and the frequency will be decreased automatically anyway on the next call. Also, it actually might be better for the battery runtime - keyword race-to-idle.
@Ezekeel: WTF are you doing here mate?!?! You should be working for Google with your innovations. Keep up the good work!
There are also random reboots with ondemand while watching XVID Videos on MoboPlayer or mxVideo Player.
Ezekeel said:
It still behaves like ondemand when increasing the frequency, i.e. goes to the maximum frequency available.
Click to expand...
Click to collapse
um, that's how _interactive_ behaves - jumps to max frequency on load, then samples down.
ondemand goes to next higher frequency, when load is more than up_threshhold.
so yeah, morfic question is correct, and i can't see how you can mix these two.
unless you switch to ondemand logic for uniform load, of course
igor.tonky said:
ondemand goes to next higher frequency, when load is more than up_threshhold.
Click to expand...
Click to collapse
No, that is not correct. When increasing the frequency ondemand always switches to the maximum frequency. Take a look at the source code if you do not believe me.
Smartass is the best imo. Its responsiveness is awesome.
Thank you for sharing it with us, I will take a look as soon as I can. But I write more to thank you for all the other implementations You have already done and I have reviewed more in detail, you are doing a nice work.
KalimochoAz
xmRipper said:
Smartass is the best imo. Its responsiveness is awesome.
Click to expand...
Click to collapse
but useless when you want to use your phone as mp3player ^^
eiabea said:
but useless when you want to use your phone as mp3player ^^
Click to expand...
Click to collapse
amen to that brother
Related
Hi folks,
I was just wondering, what are everyone's speeds? I shall start first I have attached a screenshot of my voltages, speeds, and governor.
WARNING : I TAKE NO RESPONSIBILITY FOR ANY DAMAGE YOUR NOOK MIGHT INCUR AS A RESULT OF TRYING ANY OF OVERCLOCK CONFIGURATIONS MENTIONED HERE.
Quick note - i would strongly suggest backing your CPU down to a max of 1200Mhz. For some reason, any speed above that will tank your GPU performance (by as much as half); the additional 100Mhz CPU loss isn't really felt (especially with the GPU gains).
Divine_Madcat said:
Quick note - i would strongly suggest backing your CPU down to a max of 1200Mhz. For some reason, any speed above that will tank your GPU performance (by as much as half); the additional 100Mhz CPU loss isn't really felt (especially with the GPU gains).
Click to expand...
Click to collapse
Is there anyway to confirm this? How can I measure GPU performance?
I set mine at 1200MHz and didn't bother playing with cpu voltage.
PoisonWolf said:
Is there anyway to confirm this? How can I measure GPU performance?
Click to expand...
Click to collapse
It has been well confirmed in severl threads (Cm7 dev and general), but you can easily test yourself with nenamark 1. Set your clocks to 1200, and run the bench; then set your clocks to 1300, run again (and watch your framerate plummet).
Divine_Madcat said:
It has been well confirmed in severl threads (Cm7 dev and general), but you can easily test yourself with nenamark 1. Set your clocks to 1200, and run the bench; then set your clocks to 1300, run again (and watch your framerate plummet).
Click to expand...
Click to collapse
I tried your little scenario of dropping down to 1125mhz and running nenamark. I was 14.8 running 1125mhz and at 15.6 at 1300mhz. I am running chainfire plug ins.
Sent with my Nook, paid the $Buck for XDA Premium—you should 2!
And what do those numbers mean?
14.8 is better or worse compared to 15.6?
Hindle1225 said:
I tried your little scenario of dropping down to 1125mhz and running nenamark. I was 14.8 running 1125mhz and at 15.6 at 1300mhz. I am running chainfire plug ins.
Sent with my Nook, paid the $Buck for XDA Premium—you should 2!
Click to expand...
Click to collapse
Odd.. i can get 21 Fps at @1200.. i would have expected the 1125 to be around the same; though the 1300 sounds right on.
I got 16.3 fps using my current setup. Lawl. What part of android uses 3d acceleration anyway?
PoisonWolf said:
I got 16.3 fps using my current setup. Lawl. What part of android uses 3d acceleration anyway?
Click to expand...
Click to collapse
UH.. android, not alot, but pretty much any game (or even some web browsers like Opera). Its easy to "lawl", but it actually DOES matter...
Divine_Madcat said:
UH.. android, not alot, but pretty much any game (or even some web browsers like Opera). Its easy to "lawl", but it actually DOES matter...
Click to expand...
Click to collapse
Good point however I don't play any games that uses 3d. I don't really play any games. Just browsing with dolphin and lots of email.
I will take it down per notch as per your suggestion once I update to a newer version though.
Also, some of the framerate difference may come from you running the 32bit framebuffer kernel, instead of the faster 16bit (but if you don't game alot, you may not really need it anyway).
Scratch that. I just tested it. I got 22.9fps. Lawl. I am now tweaking it again. What are your voltages?
Thanks for the suggestion again. 1200 MHz Max for me.
P.s. how do I check which framerate buffer am I running?
PoisonWolf said:
Good point however I don't play any games that uses 3d. I don't really play any games. Just browsing with dolphin and lots of email.
I will take it down per notch as per your suggestion once I update to a newer version though.
Click to expand...
Click to collapse
If u don't play any games, then why to bother for the 3D loss of 1300mhz?
I would prefer to use the extra speed.
RASTAVIPER said:
If u don't play any games, then why to bother for the 3D loss of 1300mhz?
I would prefer to use the extra speed.
Click to expand...
Click to collapse
Frankly, i am under the personal impression that overall the system is more responsive at 1200, and that is not just the GPU. Something about that speed is the sweet spot.
And really.. only rarely will a system that does web pages and email hit max speed anyway... why not opt for a better all around performance, rather than an immeasurable CPU gain?
I know this could be kind of off topic, but what battery temperatures do you guys get when overclocking? because the other day mine was at 36 Celsius overclocked at 1200, Does anyone knows of a safe temperature range?
Mine hovers around 34 to 36. My hd2 goes up to 43 and that is fine too. Honestly, I would think that as long as it is under 40 you should not worth.
I use 300 min and 1200 max and have the governor set to on demand. No issues with this setting.
300 - .8125
600 - 1.0
800 - 1.1875
1100 - 1.25
1200 - 1.2875
Haven't used it much recently, but about 5% drain for 24 hours in sleep. I need to put it through some heavy use to see how bad I can kill the battery.
biohazrd51 said:
1200 - .8125
1100 - 1.0
800 - 1.1875
600 - 1.25
300 - 1.2875
Haven't used it much recently, but about 5% drain for 24 hours in sleep. I need to put it through some heavy use to see how bad I can kill the battery.
Click to expand...
Click to collapse
You probably got the voltages reversed. Not possible to run 300 mhz on 1.2875. Lawl.
patruns said:
I use 300 min and 1200 max and have the governor set to on demand. No issues with this setting.
Click to expand...
Click to collapse
This was my initial setting as well (with the exception of running the max at 1300mhz). However, I realized that it wasn't the max speed that was the issue, I found out that increasing the lower-steppings was key in increasing the overall fluidity of the device as the interactive governor ramped through the steppings.
We all know Morfic's popular TEUV kernel which features a low maximum frequency of just 880MHz, but still shows an excellent performance. The secret sauce is the increased bus speed of 220MHz compared to the stock frequency of 200MHz. The problem is that every Nexus S behaves differently because of production tolerances for the CPU and not all devices are able to handle this increased bus speed.
Thus it would be nice to have some way for the user to individually adjust the bus speed to match the overclocking capabilities of their device. Unfortunately with TEUV the bus speed has to be defined on compilation time thus the only way would be to release different versions with different bus speeds which, frankly, would be a pain in the ass. So I implemented a way to change the bus speed on-the-fly while the device is running. In contrast to TEUV not only the bus speed for the maximum frequency but for all states is increased by the same percentage (might change this later, especially for the minimum state).
In '/sys/class/misc/liveoc' change the performance by passing a value from 100 to 120 to 'oc_value' (100 = stock performance, 120 = +20% performance; 100 is default). The bus speed and frequencies for all states will be adjusted accordingly.
I am currently running my Nexus with an increased performance +10% using the stock frequencies 100->110, 200->220, 400->440, 800->880 and 1000->1100 and after increasing the voltage for the maximum state by 25mV 30mV everything is working fine without a reboot for 24h now. The battery drain however seems to be pretty high so it might be a good idea to leave the lowest frequency state untouched. Time and your feedback will tell. Seems like the sleep frequency fix also took care of the high battery drain.
Changes to the source: http://www.pastie.org/2634833
BUGFIX:
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
BUGFIX #2:
When OC value is changed, the minimum and maximum frequency limits set by the user are adjusted according to the new frequencies.
Bugfix: http://www.pastie.org/2691219
BUGFIX #3:
Made sure the bus speeds and frequencies are not changed while a frequency change is currently ongoing.
Bugfix: http://www.pastie.org/2710098
BUGFIX #4:
Instead of a spin lock (which leads to problems) we use a mutex to make sure the bus and frequencies are not changed while a frequency change is ongoing.
Bugfix: http://www.pastie.org/2710386
BUGFIX #5:
If no mutex lock can be obtained, an error value is returned to inform the caller that the frequency was not changed.
Bugfix: http://www.pastie.org/2746226
BUGFIX #6:
1. Reverting back to mutex_lock to make sure no important request like enabling/disabling further frequency changes are skipped.
2. The mutex is unlocked before the CPUfreq stats are resetted. With the above modification this seems necessary to avoid lockups when changing the OC value.
3. The frequencies and bus speed are updated only when the selected OC value actually did change.
Bugfix: http://www.pastie.org/2756640
BUGFIX #7:
Maximum OC value increased to 150.
Bugfix: http://www.pastie.org/2768535
No further patches will be published here. I have set up a git repo for all my tweaks. Each mod has its own branch to keep the tweaks cleanly separated and one can simply pull the latest patches from the corresponding branch.
https://github.com/Ezekeel/GLaDOS-nexus-s/tree/liveoc
Thanks to Morfic for his help.
What are creative guy…so many useful mod. Great!!
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
Just when I start to think what else can this guy come out with.. lol
Trying it now
Sent from my Nexus S 4G using Tapatalk
Is the liveoc file just included in morfic teuv kernel???
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
kevinngck1 said:
Is the liveoc file just included in morfic teuv kernel???
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
Click to expand...
Click to collapse
Morfic's TEUV kernel was the inspiration for this mod. It is not implemented in any kernel yet.
The first bugfix.
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
Pretty impressive idea and implementation.
Although I don't have this phone (hope to get one soon as it's for a great price here in Portugal), I stumbled upon this thread and I liked it very much. Keep it up!
This is eactly what I want!!!
You're my hero
Ezekeel said:
We all know Morfic's popular TEUV kernel which features a low maximum frequency of just 880MHz, but still shows an excellent performance. The secret sauce is the increased bus speed of 220MHz compared to the stock frequency of 200MHz. The problem is that every Nexus S behaves differently because of production tolerances for the CPU and not all devices are able to handle this increased bus speed.
Thus it would be nice to have some way for the user to individually adjust the bus speed to match the overclocking capabilities of their device. Unfortunately with TEUV the bus speed has to be defined on compilation time thus the only way would be to release different versions with different bus speeds which, frankly, would be a pain in the ass. So I implemented a way to change the bus speed on-the-fly while the device is running. In contrast to TEUV not only the bus speed for the maximum frequency but for all states is increased by the same percentage (might change this later, especially for the minimum state).
In '/sys/class/misc/liveoc' change the performance by passing a value from 100 to 120 to 'oc_value' (100 = stock performance, 120 = +20% performance; 100 is default). The bus speed and frequencies for all states will be adjusted accordingly.
I am currently running my Nexus with an increased performance +10% using the stock frequencies 100->110, 200->220, 400->440, 800->880 and 1000->1100 and after increasing the voltage for the maximum state by 25mV everything is working fine without a reboot for 24h now. The battery drain however seems to be pretty high so it might be a good idea to leave the lowest frequency state untouched. Time and your feedback will tell.
Changes to the source: http://www.pastie.org/2634833
BUGFIX:
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
Thanks to Morfic for his help.
Click to expand...
Click to collapse
very nice.
i wonder why the increased battery drain. are you still getting similar numbers in setcpu's "time in state" as you were with teuv?
My goodness! Ezekeel! You're just that excellent!
Nice idea, although I don't have a nexus S, (thanks @tapatalk for showing me this thread)
Ezekeel said:
Morfic's TEUV kernel was the inspiration for this mod. It is not implemented in any kernel yet.
Click to expand...
Click to collapse
I'll need some time to wedge this in.
Check why the compile fails after adding the failed hunks (looks like possibly missapplied fuzzy hunk)
Aside i would want it to work with each kernel type, be it TEUV, TUV or T12, T13, T144 or T1544
Since that is all layed out as Kconfig options i'll have to check where to apply the code you added to stock source so it will indeed work for all the speeds, kind of as a added bonus to the current speeds.
Then i would have to shoehorn in a voltage control and OCing without voltage control is not a good idea, 1.0GHz has some obvious headroom, but the OC speeds especially will want a nudge on the voltage side if you nudge the bus/cpu/gpu across the board by x%
and with kernel.org up (not android.git.kernel.org (unless we android geeks just totally hammered it)) i would prefer to grab latest samsung source, freshen up all builds, then work on integrating this.
I could see the netarchy layout benefit from this patch as there are no Kconfig #ifdef to deal with (I'm looking at you mathkid ;P lol hah! coo <3)
Just a little timeframe setter to tune the expectations to a realistic level.
Thanks Ezekeel
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Ezekeel said:
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Click to expand...
Click to collapse
Very nice.
Told you those hummingbirds are picky about their sleep freq
Now we know OCing it causes high drain instead of the typical SoD when no high enough clock is available.
Ezekeel said:
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Click to expand...
Click to collapse
imagine that..
a better sleep makes a happier kernel
Dude, ezekeel do you ever sleep or think about anything other than making our phones more powerful? How can so much utility come from one guy and why are you not employed by the government finding new and exciting ways to kill people. Imo you deserve a massive salary with a brain like yours.
Sent from my Nexus S MV from the XDA Premium app.
kenvan19 said:
Dude, ezekeel do you ever sleep or think about anything other than making our phones more powerful? How can so much utility come from one guy and why are you not employed by the government finding new and exciting ways to kill people. Imo you deserve a massive salary with a brain like yours.
Sent from my Nexus S MV from the XDA Premium app.
Click to expand...
Click to collapse
He codes on the job, i think that makes a big difference on the time availability front.
Any news or update?
Seems no kernel has added this mod
Really want to have a try
It 's coming to Matr1x..
Sent from my Nexus S using XDA App
Its here!!! Matr1x 8.5
Sent from my Nexus S using XDA App
Ok guys, this is going to be a long post but I think in the end, it will put a lot of good information to everyone to help them understand kernels a little better. I may not have a machine to be able to develop but I do know quite a bit of stuff lol. Anyway, here's a thread to inform everyone about the different sections of kernels.
First I would like to give some "thanks."
mtmichaelson - for giving us this badass 1.9gHz kernel to play with and for doing soooooo much for development! We are forever in your debt.
droidphile - for teaching me just about everything I know.
*I'm sure there are more people and if I missed you, let me know!*
First, let's start with "governors."
OnDemand:
The default governor in almost all stock kernels. One main goal of the ondemand governor is to switch to max frequency as soon as CPU activity is detected to ensure the responsiveness of the system. Effectively, it uses the CPU busy time as the answer to the "how critical is performance right now" question. So Ondemand jumps to maximum frequency when CPU is busy and decreases the frequency gradually when CPU is less loaded/apporaching idle. Even though many of us consider this a reliable governor, it falls short on battery saving and performance on default settings. One potential reason for ondemand governor being not very power efficient is that the governor decides the next target frequency by instant requirement during sampling interval. The instant requirement can respond quickly to workload change, but it does not usually reflect workload real CPU usage requirement in a longer time and it possibly causes frequent changes between highest and lowest frequency.
Conservative:
A slower Ondemand which scales up slowly to save battery. The conservative governor is based on the ondemand governor. It functions like the Ondemand governor by dynamically adjusting frequencies based on processor utilization. However, the conservative governor increases and decreases CPU speed more gradually. Simply put, this governor increases the frequency step by step on CPU load and jumps to lowest frequency on CPU idle. Conservative governor aims to dynamically adjust the CPU frequency to current utilization, without jumping to max frequency. The sampling_down_factor value acts as a negative multiplier of sampling_rate to reduce the frequency that the scheduler samples the CPU utilization. For example, if sampling_rate was equal to 20,000 and sampling_down_factor is 2, the governor samples the CPU utilization every 40,000 microseconds.
Smartass2:
Version 2 of the original smartass governor from Erasmux. Another favorite for many people. The governor aims for an "ideal frequency", and ramps up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.
Userspace:
Instead of automatically determining frequencies, it lets the user set the frequencies.
Powersave:
Locks max frequency to min frequency. Can not be used as a screen-on or even screen-off (if scaling min frequency is too low).
Performance:
Sets min frequency as max frequency. Very useful while benchmarking!
Smoothass:
The same as the Smartass “governor” But MUCH more aggressive & across the board this one has a better battery life that is about a third better than stock KERNEL.
Now for the "schedulers."
Noop:
Inserts all the incoming I/O requests to a "First In First Out" queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like a flash drive). Advantage here is that flash drives do not require reordering of multiple I/O requests unlike in normal hard drives.
*Advantages*1. Serves I/O requests with least number of cpu cycles. (Battery friendly?)
2. Best for flash drives since there is no seeking penalty.
3. Good throughput on db systems.
*Disadvantages*1. Reduction in number of cpu cycles used is proportionate to drop in performance.
Deadline:
Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.
*Advantages*1. Nearly a real time scheduler.
2. Excels in reducing latency of any given single I/O.
3. Best scheduler for database access and queries.
4. Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.
5. Like noop, a good scheduler for solid state/flash drives.
*Disadvantages*1. When the system is overloaded, the set of processes that may miss deadline is largely unpredictable.
CFQ:
Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process.
*Advantages*1. Considered to deliver a better balanced i/o performance.
2. Easiest to tune.
3. Excels on multiprocessor systems.
4. Best database system performance after deadline.
*Disadvantages*1. Some users report that media scanning takes longer to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
2. Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.
SIO:
Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. SIO is a mix between noop & deadline. No reordering or sorting of requests.
*Advantages*1. Simple, very very reliable.
2. Minimized starvation of requests.
*Disadvantages*1. Slow random-read speeds on flash drives, compared to other schedulers.
2. Sequential-read speeds on flash drives also not so good.
============================================================
That's about all I have for now lol. If I can think of anymore stuff to post on here, I'll get it as soon as I get a chance. Thanks for reading!
Reserved for more info!
Thanks!!!
Can you also include information about smoothass?
Missed interactive. Fyi stock gov on this thing. Which is odd and the first time I've ever seen that.
Sent from my Transformer Prime TF201 using xda premium
Haro912 said:
Missed interactive. Fyi stock gov on this thing. Which is odd and the first time I've ever seen that.
Sent from my Transformer Prime TF201 using xda premium
Click to expand...
Click to collapse
Blitzed doesn't have Interactive which is why I left it out. Fyi not the default lol
Sent from my Volted Ice Revo using Tapatalk.
spc_hicks09 said:
Blitzed doesn't have Interactive which is why I left it out. Fyi not the default lol
Sent from my Volted Ice Revo using Tapatalk.
Click to expand...
Click to collapse
By on this thing I was hoping everyone would realize that I was on my Prime at the time. It's the default on there
Haro912 said:
By on this thing I was hoping everyone would realize that I was on my Prime at the time. It's the default on there
Click to expand...
Click to collapse
Oh lol sorry I thought you were talking about the Revo.
Sent from my Volted Ice Revo using Tapatalk.
Thanks for taking the time to explain all of that. I learned a few things.
Sent from my Blitzed supercharged Volted Ice Revo
scyther2333 said:
Thanks!!!
Can you also include information about smoothass?
Click to expand...
Click to collapse
I should be adding stuff about smoothass soon.
Sent from my Volted Ice Revo using Tapatalk.
Excellent thread hicks, thanks for the info!
Sent from my VS910 4G using XDA App
thanks a lot...
don't mean to add more work for you but i think it would be great if you could give an overview of governors and schedulers and how/why they work in android
scyther2333 said:
thanks a lot...
don't mean to add more work for you but i think it would be great if you could give an overview of governors and schedulers and how/why they work in android
Click to expand...
Click to collapse
Lol that's pretty much exactly what this thread is.
I second that
Obsidian_soul said:
Thanks for taking the time to explain all of that. I learned a few things.
Sent from my Blitzed supercharged Volted Ice Revo
Click to expand...
Click to collapse
Thanks from me too... very informative.... and appreciated.
St3vi3
Can we get an explanation of smoothass please? I can't seem to find much with a standard google search, well except for some things I'd rather not mention lol
Thanks hicks
Sent from my VS910 4G using XDA App
OP updated with the "short and sweet" descriptive of "Smoothass."
scyther2333 said:
thanks a lot...
don't mean to add more work for you but i think it would be great if you could give an overview of governors and schedulers and how/why they work in android
Click to expand...
Click to collapse
corypwrs said:
Can we get an explanation of smoothass please? I can't seem to find much with a standard google search, well except for some things I'd rather not mention lol
Thanks hicks
Sent from my VS910 4G using XDA App
Click to expand...
Click to collapse
^ This made me laugh my ass off haha. I just pictured someone sitting at maybe a library or some public computer and innocently trying to find info on the "smoothass" governor hahahahaha!
spc_hicks09 said:
^ This made me laugh my ass off haha. I just pictured someone sitting at maybe a library or some public computer and innocently trying to find info on the "smoothass" governor hahahahaha!
Click to expand...
Click to collapse
I wasn't really thinking about it much until the search results came up. Luckily I was on my laptop at home or else it would've been awkward for me lol
Sent from my VS910 4G using XDA App
Just curious, why does, smartass2 and smoothass only utilize stock cpu speeds?
Sent from LG Revo Gingervolt 2.0, Hack the Planet. Using XDA App
SnoeDogg said:
Just curious, why does, smartass2 and smoothass only utilize stock cpu speeds?
Sent from LG Revo Gingervolt 2.0, Hack the Planet. Using XDA App
Click to expand...
Click to collapse
It doesn't. It uses all speeds that I included.
Sent from my VS910 4G using xda premium
mtmichaelson said:
It doesn't. It uses all speeds that I included.
Sent from my VS910 4G using xda premium
Click to expand...
Click to collapse
+1
Most of the descriptions here are for a stock Gingerbread kernel.
Sent from my Dread Ginger Revo using Tapatalk.
I figured it out. Im using CPU Master and i had to set thru the program and then thru the widget for some reason. Thanks
Sent from LG Revo Gingervolt 2.0, Hack the Planet. Using XDA App
What this app is gonna do?
This will give you some boost that is really required to play games that are demanding on GPU front.
What this app require?
You need to be ROOTed and for that there is a really great app with one touch facility available! The link is http://forum.xda-developers.com/showthread.php?t=2387507
After you get ROOTed just install the Tegra Overclock OUYA EDITION app from attachment and click on OK for one click optimization.
You can also change the actual resolution to somewhat lower to again get a massive boost in GPU intensive games or shall I say those games that scale with GPU clocks very well. (I can confirm nearly 2X boost in RipTideGP2 with all settings maxed out when comparing with 1080p to 720p option provided in the app :laugh
Any kind of hazardous warning before use?
If anything goes wrong then you know where the power switch is! Close the console and cut the power and start again. We have not implemented the on Boot settings for safety reasons...
What about future updates?
I just wish that 4.2.2 gets for the OUYA and that will be a game changer for the console as that support full screen scaling on resolution changing vs screen compensation provided by current android 4.1 version....
NOTE: The app is fully free to use one click solution for OUYA owners and don't require you to get involve in any of cracking stuff Still the app does costs us in development and support front so any kind of donation will be greatly appreciated. If you are planning to buy any Tegra device in future then you can support us by purchasing the original Tegra Overclock app from the market that will in turn benefit you as well..
BTW don't forget to hit the thanks button
EDIT: Version 1.1 Change log
*Nothing new just made the interactive governor as a default rather than performance governor due to heating concern.
*Checked the code so that 2D GPU is set to 520 MHz too, in case it still reports half let me know..
EDIT: Version 1.2 Change Log
***Added requested LBCMT (LastBootCpuMaximumTemperature!) This shows the maximum temperature your device went during last boot.
***Added apply on boot (Works only when the USB device with at least a single file is detected to ensure you don't intentionally mess up anywhere )
The LBCMT will works as soon as you boot once after you open the app for the first time. Also note that YOU SHOULD NOT KILL THE APP manually by task killers or the reporting will be fake. BEWARE....
EDIT: Version 1.3 Change LOG
***Full screen stretched resolution support for CM11 Rom users. Use the special newly added resolution (will only work for CM users currently as no other 4.3 or 4.4 Roms available)
Fixes for temp not showing on custom kernel like EPRJ Kernel.
Thank you for being patient.
Kingshoo said:
What this app is gonna do?
This will give you some boost that is really required to play games that are demanding on GPU front.
What this app require?
You need to be ROOTed and for that there is a really great app with one touch facility available! The link is http://forum.xda-developers.com/showthread.php?t=2387507
After you get ROOTed just install the Tegra Overclock OUYA EDITION app from attachment and click on OK for one click optimization.
You can also change the actual resolution to somewhat lower to again get a massive boost in GPU intensive games or shall I say those games that scale with GPU clocks very well. (I can confirm nearly 2X boost in RipTideGP2 with all settings maxed out when comparing with 1080p to 720p option provided in the app :laugh
Any kind of hazardous warning before use?
If anything goes wrong then you know where the power switch is! Close the console and cut the power and start again. We have not implemented the on Boot settings for safety reasons...
What about future updates?
I just wish that 4.2.2 gets for the OUYA and that will be a game changer for the console as that support full screen scaling on resolution changing vs screen compensation provided by current android 4.1 version....
NOTE: The app is fully free to use one click solution for OUYA owners and don't require you to get involve in any of cracking stuff Still the app does costs us in development and support front so any kind of donation will be greatly appreciated. If you are planning to buy any Tegra device in future then you can support us by purchasing the original Tegra Overclock app from the market that will in turn benefit you as well..
BTW don't forget to hit the thanks button
Click to expand...
Click to collapse
now a simple question....can you tell me which options i need to use for get a best performance in ouya games and emu?
This app has a one click solution (found in the op). All you need to do is click the button and your ouya is optimized. The op already has this information.
On another note, this app rocks. Thank you.
Awesome, finally the OUYA version, im about to jump on this right now and give it a spin!!!:good:
darkknight1812 said:
This app has a one click solution (found in the op). All you need to do is click the button and your ouya is optimized. The op already has this information.
On another note, this app rocks. Thank you.
Click to expand...
Click to collapse
i asked before install...now i saw it very nice and user friendly
.. one click optimization .. nice job .. cheers
sasuke1981 said:
now a simple question....can you tell me which options i need to use for get a best performance in ouya games and emu?
Click to expand...
Click to collapse
Just Press the OK button and wait a few seconds as the settings getting applied. After that Run your Emulator Games and you should notice a difference . Note that Resolution options also cuts the screen area so use them only if a game is unplayable!
is there no way to allow users to set advanced profiles so that they can configure a medium and max overclock setting?
i saw the temps on my core rise up pretty quickly just from fiddling with the UI, not sure if I want to subject this little guy to that much abuse with no really efficient cooling solution under the hood.
Careless_ said:
is there no way to allow users to set advanced profiles so that they can configure a medium and max overclock setting?
i saw the temps on my core rise up pretty quickly just from fiddling with the UI, not sure if I want to subject this little guy to that much abuse with no really efficient cooling solution under the hood.
Click to expand...
Click to collapse
it's understandable for the lil guy to get hot quickly when you are overclocking the GPU+CPU, can't expected to run cool unless you put a better cooling fan into you console, i don't mid my ouya running a lil hot, well mines don't get hot enough cause my ouya got a acrylic custom shell with enough vents and airflow that keeps my console way cooler then the ouya stock/factory shell...
its obvious that it would run hotter if the clock speed is higher. no one is disputing that. i just don't see how not allowing the user to specify speed as much of the other CPU overclocking programs like SetCPU allow the user to do.
It's a needed feature IF it can be supported and implemented.
Excellent!
I'll give this a bash tonight and see what improvements there are!
Careless_ said:
is there no way to allow users to set advanced profiles so that they can configure a medium and max overclock setting?
i saw the temps on my core rise up pretty quickly just from fiddling with the UI, not sure if I want to subject this little guy to that much abuse with no really efficient cooling solution under the hood.
Click to expand...
Click to collapse
Actually Temperatures are no problem for this chip as it can bear temperatures of 70 C with great ease as the manufacturer mentioned. Don't worry about that also let me know if they are above this temperature so that we can do something about that. If you ask me I am comfortable with 85C as that is what the throttle temperatures (Default mind you!). Just Relax and crush the games already
Careless_ said:
its obvious that it would run hotter if the clock speed is higher. no one is disputing that. i just don't see how not allowing the user to specify speed as much of the other CPU overclocking programs like SetCPU allow the user to do.
It's a needed feature IF it can be supported and implemented.
Click to expand...
Click to collapse
The custom CPU clock feature conflict the one click feature and not to mention lower clocks are not required as there is no trouble with the highest speed since the cooling is active and with sink. Just don't worry about the temps too much as everything is normal here and the purpose of console is to bear high temperatures with high load even with little heat management..
I have both the old app and the Ouya specific one and it looks to me that 2D GPU clock is set to 260MHz (1/2 of 3D clock). @Kingshoo, can you tell us what the "one click" settings are (governor, CPU clock, GPU, etc).
Much appreciate the work you've done.
Ipse_Tase said:
I have both the old app and the Ouya specific one and it looks to me that 2D GPU clock is set to 260MHz (1/2 of 3D clock). Can you tell us what the "one click" settings are (governor, CPU clock, GPU, etc).
Much appreciate the work you've done.
Click to expand...
Click to collapse
Oh really If its working on Half then I will bump that to full to in next iteration
Settings are nothing but final settings in one click. Meaning Performance governor (Because this one has no polling overhead as opposed to interactive). GPU to 520Mhz, CPU clock to 1.7Ghz (1.6 on all 4 cores as set by OUYA). Ram at 800Mhz and also no throttling on Ram and GPU so that performance is reduced only due to H/W limitation or by bad coding practices and not due to some power saving logics
Kingshoo said:
Oh really If its working on Half then I will bump that to full to in next iteration
Settings are nothing but final settings in one click. Meaning Performance governor (Because this one has no polling overhead as opposed to interactive). GPU to 520Mhz, CPU clock to 1.7Ghz (1.6 on all 4 cores as set by OUYA). Ram at 800Mhz and also no throttling on Ram and GPU so that performance is reduced only due to H/W limitation or by bad coding practices and not due to some power saving logics
Click to expand...
Click to collapse
Cool...thanks! Looking forward to v2
BTW...for reference, I had my governor set to performance for a while and it drove the fan to run almost at all times. To the point I ended up shelling 20 bux to buy the Noctua quiet fan. Maybe others have better luck with the stock fan - but if noise is a concern, I found that the "Interactive" governor scales pretty fast with no visible impact on performance vs "Performance".
My 2 cents.
After reading several reviews about Noctua 40x10mm A-Series Blades with AAO Frame, SSO2 Bearing Premium Retail Cooling Fan NF-A4x10, I decided to buy it. I replaced the noisy fan of my OUYA, and the difference in sound is amazing. I had to check if the fan was actually running because barely hear it. Also, the temperature of my equipment dropped ~ 10°C, so overheating issues could be easily fixed, if you decided to overclock. I recommend this product without a doubt. Check on eBay or Amazon.
If you want to replace the fan, here's a guide how to do it. youtube . com /watch?v=rra0FwlHvBA
Well honestly I wasn't able to play games on OUYA but since you people are playing games what the temps of CPU are anyways after say an hour? I am asking this because I don't see a need for custom coolers as 50C or 70C it really don't make any difference to your hardware. Yes the fan noise may be concerning to many but I have cotton plugs in my ears to keep it silent (these really costs cents and not $$!). OK so newer version will have interactive on one click..
My stock fan is totally silent anyway
Sent from my ADR6350 using Tapatalk
Ipse_Tase said:
Cool...thanks! Looking forward to v2
BTW...for reference, I had my governor set to performance for a while and it drove the fan to run almost at all times. To the point I ended up shelling 20 bux to buy the Noctua quiet fan. Maybe others have better luck with the stock fan - but if noise is a concern, I found that the "Interactive" governor scales pretty fast with no visible impact on performance vs "Performance".
My 2 cents.
Click to expand...
Click to collapse
i will also try this, i run my OUYA on performance all the time and it's pretty loud...
I don't know if it works on OOS versions but it does, on the OB12. You need to be rooted to be doing this.
Lower the input boost to 1036 on the big and 556 on the small first. Now, change the governor of the big cluster to conservative and the small to ondemand or conservative , benefit!
To see the improvement in FPS, you need to go to developer options and switch on profile GPU rendering. For those who didn't understand this: lower the graph is, higher the fps. Hit thanks if helped
Where to change these settings?
Any kernel manager would do. I'd recommend kernel aduitor
chinmai560621 said:
Any kernel manager would do. I'd recommend kernel aduitor
Click to expand...
Click to collapse
Just change the option of GPU GOVERNER to simple_on demand one from the above mentioned app. It will work smooth.. works for me..:good:?
ashokspidy said:
Just change the option of GPU GOVERNER to simple_on demand one from the above mentioned app. It will work smooth.. works for me..:good:?
Click to expand...
Click to collapse
I'd recommend to leave it on msm-adreno.
What if I'm on RR 5.8.2 and ElementalX? I have ondemand governor option for little but don't have conservative for big cluster.
karliyo said:
What if I'm on RR 5.8.2 and ElementalX? I have ondemand governor option for little but don't have conservative for big cluster.
Click to expand...
Click to collapse
This is exclusive for OOS. In fact, the interactive is supposed to be better than the rest but it's not the case on OOS which is why I made this thread.
chinmai560621 said:
This is exclusive for OOS. In fact, the interactive is supposed to be better than the rest but it's not the case on OOS which is why I made this thread.
Click to expand...
Click to collapse
Oh alright. Little governor ondemand seems quite fine right now.
By the way, are both governors interactive by default?
karliyo said:
Oh alright. Little governor ondemand seems quite fine right now.
By the way, are both governors interactive by default?
Click to expand...
Click to collapse
Has to be. Unless you use blu_spark kernel. It uses blu_activ.
How do these changes affect the battery life?
chinmai560621 said:
Has to be. Unless you use blu_spark kernel. It uses blu_activ.
Click to expand...
Click to collapse
You mean interactive and not blu_active?
I do recommend you guys taking a look at AKT.. There are alot of peformance oriented and balanced profiles that are already better with smoothness then stock.. Also Franco has some magic with stock settings!
chinmai560621 said:
I don't know if it works on OOS versions but it does, on the OB12. You need to be rooted to be doing this.
Lower the input boost to 1036 on the big and 556 on the small first. Now, change the governor of the big cluster to conservative and the small to ondemand or conservative , benefit!
To see the improvement in FPS, you need to go to developer options and switch on profile GPU rendering. For those who didn't understand this: lower the graph is, higher the fps. Hit thanks if helped
Click to expand...
Click to collapse
Hi friend, shall I change both values of big and small? I mean maximum and minimum?
Same, cant find where to change the input values for those two.
rOck4n said:
Same, cant find where to change the input values for those two.
Click to expand...
Click to collapse
You'll see input boost in the bottom section of CPU in kernel adiutor. Core 1- 1036, core 3 -556 is what you've to do. It'll be 1324 default on both. I'm suggesting that for slightly better battery life
MarcTremonti said:
How do these changes affect the battery life?
Click to expand...
Click to collapse
Lower SOTs are obvious, but to what degree is what matters. As far as I see, it's not that much.
GUYS, I recommend not to use this anymore. Oneplus has a reason to not release the kernel with conservative on . This is because conservative is not optimized for battery while interactive is. If interactive weren't optimized for battery, it'd be better than conservative for sure. I get only 4 hr sot on conservative but 5.5 on interactive. Though this is not placebo, it has a negative impact on SOT .
When I change big cluster to conservative, those cores will always stay above 2 GHz, as shown in Kernel Adiutor.
chinmai560621 said:
GUYS, I recommend not to use this anymore. Oneplus has a reason to not release the kernel with conservative on . This is because conservative is not optimized for battery while interactive is. If interactive weren't optimized for battery, it'd be better than conservative for sure. I get only 4 hr sot on conservative but 5.5 on interactive. Though this is not placebo, it has a negative impact on SOT .
Click to expand...
Click to collapse
The thread is about more performance and you're discussing battery life....of course it will have a lower battery life, the question is are you happy when your quad-core phone stutters....
chinmai560621 said:
You'll see input boost in the bottom section of CPU in kernel adiutor. Core 1- 1036, core 3 -556 is what you've to do. It'll be 1324 default on both. I'm suggesting that for slightly better battery life
Click to expand...
Click to collapse
Got it, thank you. I did notice a slightly battery improvement after two cycles.
Little investigation..
chinmai560621 said:
GUYS, I recommend not to use this anymore. Oneplus has a reason to not release the kernel with conservative on . This is because conservative is not optimized for battery while interactive is. If interactive weren't optimized for battery, it'd be better than conservative for sure. I get only 4 hr sot on conservative but 5.5 on interactive. Though this is not placebo, it has a negative impact on SOT .
Click to expand...
Click to collapse
Good you realised that.. I did a little investigation on your tweak.. Apparently setting governor to conservative locks the frequency of big cluster to max possible, usually above 2 ghz and it will step down slowly ( by slow I mean really slow like 1-2 seconds). Thus causes you to have very less render times on gpu profile as shown in the xda portal post.. I opened up ex kernel manager and observed same freq in higher range.
After some time I just changed governor to interactive and changed minimum freq of big cluster to 2 ghz.. I observed the same render times as situation as time when conservative was set as governor...
So this tweak is nothing but type of placebo since ramping up freq can lead to faster processing
Edit.: Couple of people on xda portal have said the same.. I didn't check it..