Related
Can somebody please explain the SetCPU governors to me? Normally I would use Smartass V2, but we only have the stock kernel.
The main governors I am curious about are mot_hotplug and hotplug. My phone seems to use a lot of battery when these are enabled, even with underclocked minimum scaling values.
Last night I ran my phone on ondemand at 300 min -300max (screen off profile) and it didn't drop 10%, first increment on battery reading stock ROM). Today while in school, it dropped from about 80% - 20% (using the same profile but with mot_hotplug).
Do all of the other governors manage both processors and hotplug can not?
You might as well use hotplug m8
MattyOnXperiaX10 said:
You might as well use hotplug m8
Click to expand...
Click to collapse
Why? That doesn't make any sense based from the findings I posted.
I'm using mot-hotplug in a week I'll know
Was using ondemand but I read an article where it shows the descriptions. Apparently hotplug behaves very similarly to ondemand but has the capability to turn off the 2nd core if there isn't a lot of workload. I switched to hotplug and so far its shown a significant difference in battery life. However, it may be a placebo as well so i'll stick to it for a week or so and then compare.
*edit
heres a link with better explaination
http://icrontic.com/discussion/95140/android-cpu-governors-and-you-setcpu-system-tuner-tegrak
evonc said:
Was using ondemand but I read an article where it shows the descriptions. Apparently hotplug behaves very similarly to ondemand but has the capability to turn off the 2nd core if there isn't a lot of workload. I switched to hotplug and so far its shown a significant difference in battery life. However, it may be a placebo as well so i'll stick to it for a week or so and then compare.
*edit
heres a link with better explaination
http://icrontic.com/discussion/95140/android-cpu-governors-and-you-setcpu-system-tuner-tegrak
Click to expand...
Click to collapse
I use kholks custom CPU governor it seems to be a lot snappier and battery use is good.
There is info in the development forum on here about it and using it.
Sent from my XT910 using XDA
I’ve flashed DooMKernel and installed IncrediControl app.
There are 4 I/O schedulers: noop, deadline, bfq, cfq.
Which one is the best for performance & long battery life?
bfq for heavy IO load, deadline for normal usage.
Sent from my LT26i using XDA
http://forum.xda-developers.com/showpost.php?p=22134559&postcount=4
Q. "Best I/O Scheduler?"
A.There is nothing called "best" i/o scheduler. Depending on your usage environment and tasks/apps been run, use different schedulers. That's the best i can suggest.
However, considering the overall performance, battery, reliability and low latency, it is believed that
SIO > Noop => Deadline > VR > BFQ > CFQ, given all schedulers are tweaked and the storage used is a flash device.
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=25387200&postcount=1
drigerott said:
http://forum.xda-developers.com/showpost.php?p=22134559&postcount=4
http://forum.xda-developers.com/showpost.php?p=25387200&postcount=1
Click to expand...
Click to collapse
Deadline > noop for average android workload. Noop is good for slow(ish) memory
Sent from my LT26i using XDA
yes me too prefer Deadline over Noop
i asked DooM for SIO in next releas
The phone has flash memory, I don't think the I/O scheduler makes any difference at all.
Or does the scheduler collect reads/writes to leave the memory in sleep mode (if there is any) a longer time?
Pezo said:
The phone has flash memory, I don't think the I/O scheduler makes any difference at all.
Click to expand...
Click to collapse
yes , at least you can get 10 ms less in latency or 1 fps (considering an OC xperia s at 1,89 GHz ) but normally i prefer use noop and seldom bfq
P.S. I you wanna try the best you can benchmark it or force cpu freq. to 192 mhz and try all the schedulers
for those interested i benched at lowest cpu speeds, pretty much no difference between noop & deadline, noop slightly faster read (64.4 / 61.4)
cfq only 40.3 read, same write
There can be a huge diference!..
ishamm said:
for those interested i benched at lowest cpu speeds, pretty much no difference between noop & deadline, noop slightly faster read (64.4 / 61.4)
cfq only 40.3 read, same write
Click to expand...
Click to collapse
I have tested just about all and they are noticeable under different types of workload no doubt using setcpu on my Galaxy S3.
Cfq- "completely fair quing" does just as is sounds.
Bfq- "bandwidth fair quing" similar to cfq but distributes work load fairly giving the exception to prioritize work or task requiring more bandwidth given the app or task has set a priority
, usually asked within a program app.
Row "read over write" gives priority to reading task such as video play back, play intense games and or graphics, overall screen smoothness and cripness , as long as data doesn't require heavy write type of task. Example of an issue I had is, I left I/o in row and had been using ttorent to download a large torrent, uploading was OK but downloading speed was sticking and malfunctioning ttorent up until I switched to cfq. Could not multi task since downloading is obviously a write style task and all priority was to read over write. I love row when I am playing games or want a smooth experience.
Noop- is the idea of first come first serve, get you cake and wait in line to get another peice so if a fat ass is just requiring the whole cake others get hungry but must wait there turn. Bfq can solve that issue especially with sudden heavy multitasking not sticking a task to feel sluggish.
On demand - ramps up processor speed fairly quick returning to idle quick using juice to regain accelerated state once requested again. Conservetive is similar but less quick to jump up and with that said I can get good battery life on performance at times of heavy use do to the stability rather than constant ramps.
---------- Post added at 03:24 AM ---------- Previous post was at 03:19 AM ----------
ishamm said:
for those interested i benched at lowest cpu speeds, pretty much no difference between noop & deadline, noop slightly faster read (64.4 / 61.4)
cfq only 40.3 read, same write
Click to expand...
Click to collapse
I have tested just about all and they are noticeable under different types of workload no doubt using setcpu on my Galaxy S3.
Cfq- "completely fair quing" does just as is sounds.
Bfq- "bandwidth fair quing" similar to cfq but distributes work load fairly giving the exception to prioritize work or task requiring more bandwidth given the app or task has set a priority
, usually asked within a program app.
Row "read over write" gives priority to reading task such as video play back, play intense games and or graphics, overall screen smoothness and cripness , as long as data doesn't require heavy write type of task. Example of an issue I had is, I left I/o in row and had been using ttorent to download a large torrent, uploading was OK but downloading speed was sticking and malfunctioning ttorent up until I switched to cfq. Could not multi task since downloading is obviously a write style task and all priority was to read over write. I love row when I am playing games or want a smooth experience.
Noop- is the idea of first come first serve, get you cake and wait in line to get another peice so if a fat ass is just requiring the whole cake others get hungry but must wait there turn. Bfq can solve that issue especially with sudden heavy multitasking not sticking a task to feel sluggish.
On demand - ramps up processor speed fairly quick returning to idle quick using juice to regain accelerated state once requested again. Conservetive is similar but less quick to jump up and with that said I can get good battery life on performance at times of heavy use do to the stability rather than constant ramps.
I wonder what's in 2022 now. I read that on netbooks with eMMC BFQ gives a significant boost and there were even benchmarks for normal operation (not just read/write)
I too have definitely wondered where the Android OS has gotten in terms of efficiency with much newer hardware and proficiency in schedulers.
Being the OP is approaching a decade old, and a Google search for "android schedulers and their use cases" tubs this ancient thread up in #2 position! Lol
lenigma1too said:
I too have definitely wondered where the Android OS has gotten in terms of efficiency with much newer hardware and proficiency in schedulers.
Being the OP is approaching a decade old, and a Google search for "android schedulers and their use cases" tubs this ancient thread up in #2 position! Lol
Click to expand...
Click to collapse
So also finding firmware with other schedulers is another story. So is finding firmware with F2FS on the /system partition
FineSoFar said:
So also finding firmware with other schedulers is another story. So is finding firmware with F2FS on the /system partition
Click to expand...
Click to collapse
F2FS AFAIK is not a scheduler, but a type of file system for NAND flash, such as the type on nearly all cell phones.
You likely have seen ext4, or XFS, and perhaps in windows you have seen NTFS when initializing a new drive
These are all types of file systems.
F2FS, specifically 3.2 and above are extremely fast & efficient, and support much larger drives and file sizes in comparison to its geriatric older cousin ext4
As for efficient schedulers for F2FS, this is where I need more data, preferably explained to me the 1st time like I'm a very inquisitive 5 year old
I have found info, lots of highly technical info I don't have the collage degree to understand fully on GitHub, but it doesn't do a great job at explaining why A type scheduler is better than B type scheduler for doing this that and those things.
But I am slowly learning!
If any Dev in the know happens upon this post, I'll dance at your wedding if you could drop a list of pros and cons for say the 10 most common schedulers used in MODERN Android builds?
Say, Oreo and above maybe?
I completely understand if you want to exclude Android 12, as I understand it contains significant changes to how Android and apps both read and utilize data
I suspect that would make answering my question quickly and efficiently near impossible, yeah?
Cheers all!!
lenigma1too said:
F2FS AFAIK is not a scheduler, but a type of file system for NAND flash, such as the type on nearly all cell phones.
You likely have seen ext4, or XFS, and perhaps in windows you have seen NTFS when initializing a new drive
These are all types of file systems.
F2FS, specifically 3.2 and above are extremely fast & efficient, and support much larger drives and file sizes in comparison to its geriatric older cousin ext4
As for efficient schedulers for F2FS, this is where I need more data, preferably explained to me the 1st time like I'm a very inquisitive 5 year old
I have found info, lots of highly technical info I don't have the collage degree to understand fully on GitHub, but it doesn't do a great job at explaining why A type scheduler is better than B type scheduler for doing this that and those things.
But I am slowly learning!
If any Dev in the know happens upon this post, I'll dance at your wedding if you could drop a list of pros and cons for say the 10 most common schedulers used in MODERN Android builds?
Say, Oreo and above maybe?
I completely understand if you want to exclude Android 12, as I understand it contains significant changes to how Android and apps both read and utilize data
I suspect that would make answering my question quickly and efficiently near impossible, yeah?
Cheers all!!
Click to expand...
Click to collapse
I know the difference and I don't confuse the two. It's all about memory optimisation, which is why I mentioned it.
You don't usually choose a scheduler for the FS, you usually choose a scheduler for the host. I checked this with my own computer and for WD Gold for example BFQ was always better, but for Toshiba BFQ was ambiguous, it increased some characteristics and worsened others. On Android, similar scheduler tests, one is better and one is worse. So there's a choice between which numbers you want.
But on desktop Linux it's easier. F2FS and mq-deadline for SSD and ext4 and BFQ for HDD. After a good experience on the desktop I would like F2FS on the phone as well. The speed is not necessarily higher, but at least there will not be double journaling as with ext4 (if it is still relevant on A12).
Translated with www.DeepL.com/Translator (free version)
So with the hubbub about io schedulers and stuff, I created two zips. One just creates an init.d script to force SIO to be the io scheduler on boot. The other installs the SIO module (thanks to batoo here for the module!) and creates an init.d that initiates and forces SIO on boot.
All the files are attached below, and you just have to flash them. There is no need to use an app to change the scheduler; I'd recommend telling the app to remove it's boot defaults.
Prerequistes
An unlocked Prime with CWM or TWRP is all that is really needed.
For those with a ROM/kernel that already has SIO as a module (ie Motley's kernel): use the sio-script zip.
For those with a ROM/kernel that does NOT have SIO incorporated: use the sio-script+module zip.
Credit goes to batoo who compiled and provided the SIO module. All I did was made it easily flashable without meddling in the terminal.
For those who are wondering why use this instead of an app to set SIO, there are a few reasons:
a) You can flash this with a ROM when you are starting from scratch.
b) Some apps don't set it while android is booting and only after you reach boot. This makes things significantly faster when your tablet is fresh started. And those that do set it with init.d probably take a little longer.
c) I don't really like an app messing with low-level boot instructions. That's just me.
Thanks st33med for giving noob like me an easy way to do this.
Quick question, how would i go about uninstalling this, would it be a matter of just deleting a script from init.d or would i need to do something else, the reaon i ask is that im having random reboots on andrrowooks latest rom while playing video over wifi, and im pretty sure ive narrowed it down to the enabling of sio through system tuner app.
Dont know if the issue is with the system tuner app or if the sio scheduler is conflicting with something else in my system, if so, i'd need to be able to uninstall, if that were the case
Prime seems to be playing nicely with cfq scheduler
Yeah just remove the 97siosched script or whatever it is called. It's in /system/etc/init.d/. If anything, noop would also give better performance now than CFQ with the motley kernel.
st33med said:
Yeah just remove the 97siosched script or whatever it is called. It's in /system/etc/init.d/. If anything, noop would also give better performance now than CFQ with the motley kernel.
Click to expand...
Click to collapse
Thanks man
Yeah ive been reading up on it, and been testing the shedulers while using cool tool, seems like noop likes to use the lower clock speeds more often when compared to cfq, i think in regard to battery, noop does a better job at using lower level clock speeds compared to others, seems to do a better job at keeping to a steady 102mhz while idle too
Am currently testing noop and and the conservative governer, but seems like there is minor performance hit, i dont think its a placebo, and im leaning towards it being mostly the governer, so ill leave it for a while, and set it back to interactive and see if i notice a performance boost
Theres quite a few governers and schedulers out there, wonder if we'll see any more of them head towards the primes way
Like banderos said, this is great, thanks for making this so easy to use!
st33med said:
Yeah just remove the 97siosched script or whatever it is called. It's in /system/etc/init.d/. If anything, noop would also give better performance now than CFQ with the motley kernel.
Click to expand...
Click to collapse
To clarify, you're suggesting noop + your init.d script for all kernels, or just if you're using motley kernel?
Komodo Rogue said:
Like banderos said, this is great, thanks for making this so easy to use!
To clarify, you're suggesting noop + your init.d script for all kernels, or just if you're using motley kernel?
Click to expand...
Click to collapse
Noop is a separate IO scheduler that comes as the default in the stock kernel. My script would replace the default io scheduler with SIO.
banderos101 said:
Thanks man
Yeah ive been reading up on it, and been testing the shedulers while using cool tool, seems like noop likes to use the lower clock speeds more often when compared to cfq, i think in regard to battery, noop does a better job at using lower level clock speeds compared to others, seems to do a better job at keeping to a steady 102mhz while idle too
Am currently testing noop and and the conservative governer, but seems like there is minor performance hit, i dont think its a placebo, and im leaning towards it being mostly the governer, so ill leave it for a while, and set it back to interactive and see if i notice a performance boost
Theres quite a few governers and schedulers out there, wonder if we'll see any more of them head towards the primes way
Click to expand...
Click to collapse
This makes sense. SIO is doing a little bit of sorting of database access in the stack, so it takes some CPU time. CFQ is the same, probably even more intensive since it's doing Round Robin on everything. Noop sticks by it's name, no operations. It's just a FIFO stack with io access.
We probably won't see anymore. There is deadline (which came with the ATP app, doesn't work well for us), bfq, vr, and a few others. But to be honest, on our device, SIO gives the best IO performance of them all but noop uses the least cpu time. CFQ is good for the other kernels besides motley's 3.0.6 kernel because they have low io and every program needs access at once. CFQ schedules and predicts which requests would take the most time and preempts them to another time in the close future. This allowed the browser to be smooth but load times would suffer a bit.
st33med said:
Noop is a separate IO scheduler that comes as the default in the stock kernel. My script would replace the default io scheduler with SIO.
Click to expand...
Click to collapse
*facepalm* I didn't realize SIO was an IO scheduler, I've never heard of that one before.
Here, have a good laugh at my expense Through the eyes of a technically oblivious tech enthusiast: Half the time I have no idea what the people around here are talking about, but I like flashable scripts, ESPECIALLY init.d scripts, because it seems like that's where all the action is. :highfive: I'll try using something in different combinations until I blindly stumble into a combination that I like. If it breaks, I fire up adb, and if it's faster than before and doesn't kill battery, then it's a keeper.
But I DO at least understand IO schedulers, cpu governors, and other basic things! And I agree with "c) I don't really like an app messing with low-level boot instructions. That's just me." I also prefer a flashable/delete-able script to some app that you have to keep installed.
st33med said:
We probably won't see anymore. There is deadline (which came with the ATP app, doesn't work well for us), bfq, vr, and a few others. But to be honest, on our device, SIO gives the best IO performance of them all but noop uses the least cpu time. CFQ is good for the other kernels besides motley's 3.0.6 kernel because they have low io and every program needs access at once. CFQ schedules and predicts which requests would take the most time and preempts them to another time in the close future. This allowed the browser to be smooth but load times would suffer a bit.
Click to expand...
Click to collapse
Does any of that change if you're using a good SD card for swap space? I'm getting one (for free!) this week, and wanted to try making a swap space partition.
Komodo Rogue said:
Does any of that change if you're using a good SD card for swap space? I'm getting one (for free!) this week, and wanted to try making a swap space partition.
Click to expand...
Click to collapse
I don't think Android would like using the SD card as swap. It's slower than the eMMC inside the machine. I wouldn't worry about swap, we have a gig of DDR2 memory and motley includes swap to the MMC card already. I don't know about IO schedulers for external memory (I think there are controllers on the card itself that do the work so no need for IO schedulers for them), but the IO scheduler we set only applies for internal memory.
st33med said:
I don't think Android would like using the SD card as swap. It's slower than the eMMC inside the machine. I wouldn't worry about swap, we have a gig of DDR2 memory and motley includes swap to the MMC card already. I don't know about IO schedulers for external memory (I think there are controllers on the card itself that do the work so no need for IO schedulers for them), but the IO scheduler we set only applies for internal memory.
Click to expand...
Click to collapse
I am actually looking for improve the perf of the prime of my wife. Talking about the swap, Motley use Zram that create a swap on the RAM directly. From my experience on my HTC Sensation using swap on my SD provide a better experience for multitasking and permit to have a bigger swap that perfectly fit for heavy use. I am just wandering if it's possible to partition the internal memory without unlock the bootloader.
bASKOU said:
I am actually looking for improve the perf of the prime of my wife. Talking about the swap, Motley use Zram that create a swap on the RAM directly. From my experience on my HTC Sensation using swap on my SD provide a better experience for multitasking and permit to have a bigger swap that perfectly fit for heavy use. I am just wandering if it's possible to partition the internal memory without unlock the bootloader.
Click to expand...
Click to collapse
Nope, you can't change the internal partition scheme without unlocking it.
Which I/O Scheduler do you guys use? I've always used ROW but I've heard good things about SIO
ive stuck to sio or deadline have you ever read the list to make the decision based on your usage?
mr4r4n said:
ive stuck to sio or deadline have you ever read the list to make the decision based on your usage?
Click to expand...
Click to collapse
Yes, i've breifly read the descriptions, but I've always stuck to ROW, im testing out SIO right now but idk if I wil be able to tell a difference.
SIO scores highest on benchmarks when compared to Deadline, Noop, and ROW. I used Antutu for testing.
I/O scheduler makes very little real world difference. Benchmarks overall do a really poor job of simulating real world workload and seem to place a higher emphasis on the results than even a perfect simulation would warrant. The best place to feel it is in media scanning and app installation. Apps themselves place comparatively very light loads on the storage.
I'm currently running a custom 4.1.2 ROM, testing a few of the 4.4 ROMS. I play around a lot with CPU control, and curious as to know what your settings are on, and what works best for you? Mine is set at standard Hotplug and sio scheduler, and it works fine, but I feel like it can be smoother, without running the performance Governor.
Super_Luddite said:
I'm currently running a custom 4.1.2 ROM, testing a few of the 4.4 ROMS. I play around a lot with CPU control, and curious as to know what your settings are on, and what works best for you? Mine is set at standard Hotplug and sio scheduler, and it works fine, but I feel like it can be smoother, without running the performance Governor.
Click to expand...
Click to collapse
Right now I'm using Mokee 4.4.2 version with PegasusQ governor and CQF I/O scheduler.
Super_Luddite said:
I'm currently running a custom 4.1.2 ROM, testing a few of the 4.4 ROMS. I play around a lot with CPU control, and curious as to know what your settings are on, and what works best for you? Mine is set at standard Hotplug and sio scheduler, and it works fine, but I feel like it can be smoother, without running the performance Governor.
Click to expand...
Click to collapse
I am using SmartAssv2 and CFQ right now on Mooke 30 jan and still observing the battery usage. to be compared when using interactive and cfq, i found it save battery more (thanks to the latest mokee version perhaps?).