REMOVED

Status
Not open for further replies.
Search This thread

ak

Senior Member
Feb 19, 2011
14,848
69,619
Ak Land Valley
ak.hiddenbytes.org
Things to do:
-Add more detail
-Add other Governors
-Add TCP congestion info
-Add I/O scheduler info
-Cleanup the OP and make it look nicer
-Organize the OP to make it look nicer.

This is fantastic ... With this guide governors dont have secret anymore :thumbup:

Good job

Sent from my Galaxy Nexus using xda app-developers app
 

MBQ_

Senior Member
Sep 3, 2011
14,799
22,998
29
Phoenix, Arizona
MBQonXDA.com
This is fantastic ... With this guide governors dont have secret anymore :thumbup:

Good job

Sent from my Galaxy Nexus using xda app-developers app

Thank you very much Anarkia. If you have anything to add/teach me/us, please do so!! I'd love to learn some more from you.

La ringrazio molto il mio amico! Io vi tenderemo la mano a te quando ne avete bisogno. :)
 

MBQ_

Senior Member
Sep 3, 2011
14,799
22,998
29
Phoenix, Arizona
MBQonXDA.com
thanks guy! accurate description and very easy to understand!

Inviato dal mio Galaxy Nexus con Tapatalk 2

Exactly what I was going for. You're very welcome my friend. I will be adding more as often as I can. I'm a firm believer in the phrase "If you can't explain it simply, then you don't know it well enough." :)

Edit: Changed up the OP a little. I will inform you guys whenever the OP is changed.
 
Last edited:

MBQ_

Senior Member
Sep 3, 2011
14,799
22,998
29
Phoenix, Arizona
MBQonXDA.com
Heck yeah!!! This guide is now STICKIED! :)

Huge thanks to 'Jonny' for stickying it! I couldn't be any more grateful. :cool:

Edit: Fixed some spelling errors in the OP
Edit 2: Fixed more spelling errors in the OP and changed up some words here and there
 
Last edited:

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
Just a couple corrections. The original x governors that imoseyon did for the thunderbolt were the regular governor with a screen off max speed set.

There was a v2 of interactiveX that offlines a core on screen off. AFAIK that never happened for ondemandX.

The design of Wheatley was to maximize time in the c4 state. The rest looks OK.

Sent from my Galaxy Nexus using Tapatalk 2
 
  • Like
Reactions: MBQ_ and abang74

MBQ_

Senior Member
Sep 3, 2011
14,799
22,998
29
Phoenix, Arizona
MBQonXDA.com
Undoubtedly the most useful thread out here. :)

A
Thank you. :)
Just a couple corrections. The original x governors that imoseyon did for the thunderbolt were the regular governor with a screen off max speed set.

There was a v2 of interactiveX that offlines a core on screen off. AFAIK that never happened for ondemandX.

The design of Wheatley was to maximize time in the c4 state. The rest looks OK.

Sent from my Galaxy Nexus using Tapatalk 2

I knew about the c4 thing, but didnt want to include it, trying to keep it as simple as possible.

Thank you for your corrections. I will change them and give you credit
 
  • Like
Reactions: arunrawat2112

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
Okay, some changes have been made.

Thanks 'tiny4579' for the correction(s)

Thanks. But as this is a galaxy nexus forum the interactiveX v2 governor which you had described originally should be included as the old style interactiveX doesn't exist on the galaxy nexus.

Sent from my Galaxy Nexus using Tapatalk 2
 
  • Like
Reactions: MBQ_

DoesntPostAThing

Senior Member
Nov 18, 2012
2,080
1,516
Vancouver
Thanks for the guide MBQ! One small thing though, PegasusQ does turn core 1 offline when screen is on for me if you set hotplug2_0 correctly. From staring at the 2nd core app I've noticed that.
 
  • Like
Reactions: MBQ_

MBQ_

Senior Member
Sep 3, 2011
14,799
22,998
29
Phoenix, Arizona
MBQonXDA.com
Thanks. But as this is a galaxy nexus forum the interactiveX v2 governor which you had described originally should be included as the old style interactiveX doesn't exist on the galaxy nexus.

Sent from my Galaxy Nexus using Tapatalk 2

Thank you. Ill change it.





Thanks for the guide MBQ! One small thing though, PegasusQ does turn core 1 offline when screen is on for me if you set hotplug2_0 correctly. From staring at the 2nd core app I've noticed that.

Okay, thank you!

Sent from my Galaxy Nexus using xda premium
 

MBQ_

Senior Member
Sep 3, 2011
14,799
22,998
29
Phoenix, Arizona
MBQonXDA.com
I have changed PegasusQ up a little and changed InteractiveX to interactiveX(v2) (Thanks to the 2 users that helped out)

I'll be adding more governors and organising the OP later tonight when I get home. I'll most likely add I/O schedulers later today as well.

Sent from my Galaxy Nexus using xda premium
 

MBQ_

Senior Member
Sep 3, 2011
14,799
22,998
29
Phoenix, Arizona
MBQonXDA.com
Thank you for the guide. I was thinking on this and this thread came right on time :)

I'm glad to hear that. :)

OP has been changed a little.
I added information on the 'Lazy' governor.

I still have many I need to add. I'll be adding the 'Nightmare' governor soon. I need to use it, and read up on its github so I can know more about it. And after that, I'll add the basic I/O schedulers.

Sent from my Galaxy Nexus using xda premium
 
  • Like
Reactions: mfsr98
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 14
    OnDemand:

    Basically, this Governor will allow your phone to use CPU speeds on demand, meaning.. If you're sending a text, your phone wont require much memory, but if you're playing a graphically intense game, it will use both cores, most likely at your highest set CPU speed, and will idle back down when you finish your game.
    No.

    It doesn't require much memory? What? CPU governors control CPU frequency, memory has nothing to do with this. Ondemand also has nothing to do with cores as it's not a hotplug aware governor.

    Ondemand stands for that it scales up on load in frequency and then detects the load and scales back to a frequency which is fullfills the "demand" of the current load dynamically.

    OndemandX:

    The same idea of Ondemand, but when the screen turns off, the max screen off profile is 500MHz.
    And the max screen off profile is what? It's maximum frequency the CPU is allowed to.

    Interactive:

    The same idea of Ondemand, but Interactive scales your CPU to the highest frequency faster than Ondemand does.
    No it doesn't.

    Interactive scales by default in steps towards max frequency, Ondemand in its default implementation scales immediately to max frequency.

    Conservative:

    Slower CPU scaling, less aggressively as well. For example, lag will occur if using this Governor while running multiple apps, because the idea of this kernel is to be as conservative as possible.
    No it doesn't.

    Conservative means that it scales conservatively, not that it is conservative. It pretty much very similiar to Interactive in that it scales up and down in frequency steps. It actually can be one of the most aggressive governors out there.
    Intellidemand:

    An intelligent Ondemand. It acts like Ondemand if the GPU gets busy, but it loads the CPU frequencies up just a tad faster and more efficient than Ondemand.
    And what does it do when the GPU is not busy? First of all it is broken in the regard of actually even checking GPU load, which is the one single thing which sets this apart from Ondemand, and has a minimum frequency in such cases. Secondly, it's identical to Ondemand in all other situation.

    Wheatley:

    One of the favored Governors of users. It is based on Ondemand, but was built with performance in mind, and maxes out c4 time (Simply put: It keeps your phone nice and fast). When opening and running apps, it will ramp up the CPU. Reduced sampling intervals was included as well, and a unique feature of this Governor is the Sampling interval can be lower than the target residency, which prevents wakelocks without hurting battery life.
    No.
    (Simply put: It keeps your phone nice and fast)
    No, it means that it improves battery by increasing the time spent in the C4 low-power state.
    When opening and running apps, it will ramp up the CPU.
    As any other governor.
    and a unique feature of this Governor is the Sampling interval can be lower than the target residency, which prevents wakelocks without hurting battery life.
    Wakelocks have nothing to do with governors.
    Hotplug:

    Based off of Ondemand. It allows a CPU to go offline with minimal usage. When you're sending messages, browsing settings, or other simple tasks, most likely one of your CPUs will be offline, which means in the long run, it will increase your battery life. When your screen goes off, it will shut off a core of your phone, which drastically improves battery life.
    Actually when your screen goes off all your cores go off. What it does is that it limits itself to 1 core when doing activity when the screen is off.
    PegasusQ:

    Samsungs Governor for multi-core phones. Based off of Ondemand. This kernel controls hotplugging as well, but doesn't hotplug a CPU (unless the developer changed the kernel to do so) when the screen is on.
    Well does it do hotplugging or not? Yes it does, even without the developer.


    I got tired by now and I even left out all the ancient governors. More tomorrow. I hope some people get the point I'm trying to make here, who allowed this to be stickied?
    10
    Re: [GUIDE] CPU Governors, TCP algorithms, Android Tips, & IO Schedulers: In my Own W

    Don't care

    Thx

    Sent from my Galaxy Nexus using xda premium

    Actually you should care because you're posting mostly wrong information while others are blindly following.

    I rember reading up on governors in the link Andrei posted and from another older source long ago and comparing what I understand from useing all those governors and reading up on each of them with what u wrote in your guide is totally different. I can see you're trying to simplify it for everyone to understand in your own way but its not exactly correct and can be confusing cause somethings you mention are unrelated.

    Sent from my GT-I9300 using xda app-developers app
    9
    Back on-topic here guys. I don't think AndreiLux intended to come off as saying everything in this thread was wrong, but just wanted to contribute in making sure it was correct. No more post in here about if it was rude or not though, this thread has been derailed enough. Thanks.

    ~ The-Captain
    8
    Oh, I forgot to tell you about IO schedulers.

    Linux (the kernel) was written in a time where spinning disk hard drives were the norm (yeah, they're still working on it, but bear with me here). The problem with these hard drives is that while they can do a linear read with pretty amazing speed, they suck at random reads. This is because there is an arm with a read/write head at the end that has to swivel around to where the data is on the disk, and then it has to wait for the right data to spin under the arm for it to read. This swiveling and waiting is called seeking, and the time it takes to do is called seek time.

    When you have a lot of concurrent reads going on (multiple things being read at the same time), this means that the data throughput grinds to a near stop because the head is moving around all the time.

    IO schedulers try to optimize this by grouping up nearby reads so fewer costly movements have to be made. There's a few different takes on this, so let me explain a really simple one: You start at the inside of the disk. Sort all the queued reads into order from inside to outside of the disk. Then do them all. Done. Now move the head back and do it again (or start from the other end). Less time is spent moving, more time is spent reading data. Or with an example:

    Say you want to read blocks 18, 94, 19 and 46. If you them in the order given you have to seek after 18 to 94, then almost all the way back to 19, then up to 46. That's 3 movements. Now if you reorder them, you get 18, 19, 46, 94. You only have to move twice now, from 19 to 46 and then to 94. That's faster.

    Other schedulers try to anticipate reads (you read this part, you probably want the next part so we will wait a really short while to see if you do, then move on). The deadline scheduler tries to reorder reads for optimal access but aims to process each read within a certain time of it being queued. Really smart people have worked hard on these schedulers, and they're very cool pieces of code.

    "But borizz27, there's no hard drive in my phone, it's all solid state memory with almost no seek times!" You're right. There isn't. "Then what's the point of the scheduler?" There isn't.

    You'd be hardpressed to find differences between the No-Op scheduler (which does nothing, no op meaning No Operation) and any other scheduler on flash memory where the seek time for the next block of data in a linear read is the same as for the next block on the "other side" of the drive. This very fast seeks is the same reason you don't have to defragment SSDs, by the way.