[krn.modules] overclocking for Arc (ICS) without custom kernels [now released!] - Xperia Arc Android Development

Update:
Use at your own risk, nothing is guaranteed!! Overclocking is dangerous and could brick your phone so be aware of what you are about to do!
If you want to take the risk, the files are below:
overclock_arc_ics_v1.zip
Install procedure:
1. The zip contains two files, overclock_12.ko and overclock_14.ko.
2. Unpack the two files onto your /sdcard folder
3. Insert one or the other using:
Code:
insmod /sdcard/overclock_1X.ko
where X is 2 or 4 depending on what frequency you want, 2 for 1200MHz or 4 for 1400MHz.
You can create a small script with the same contents and have Script Manager run it at boot time.
IMPORTANT: About frequency managers:
The CPU Managers are not perfect (I've tried SetCPU and No Frills).
They do not read the frequency tables from kernel - but as far as I can tell, they rely on the time_in_state file to see what frequencies are available. But if a frequency is changed, they remain disorientated.
THUS.
a) When booting the phone with any of the overclocking module there should be no problems, as long as SetCPU / NoFrills did not start and did not read the time_in_state file. Then no changes needed.
b) But if you start them and THEN you insert / remove the modules, etc - please go back to them and select again minimum frequency and maximum frequency EVEN IF they appear as already selected.
Just drag the first slider to the max and the second one to the min.
Also IMPORTANT:
Do not set the module at boottime unless you are absolutely sure the phone is stable with the frequencies. Otherwise you might end up in a boot loop.
PS: To other members trying to help: PLEASE DO NOT REPACK the archive and to offer it as update.zip or init.d scripts, etc.
I will do it in the next few days. The reason is that people get confused what to choose and then they ask questions about those .zips and so on. Better keep things simpler with minimal changes to the system (even these modules, they are very small, ~30kb ).
Enjoy guys - and thank you very much for your support!
Do not forget: for anyone interested, I posted a lengthly tutorial on my blog on how overclocking is achieved (disassembly and so on): http://hex.ro/wp/blog/overclocking-an-android-phone-running-with-an-msm-core/
--
I've managed to overclock my Arc (running Arc S latest ICS ROM) to run at 1200Mhz - all this WITHOUT a custom kernel and without the bootloader unlocked and so on.
I've read oppinions like this one: http://talk.sonymobile.com/message/184828#184828:
To Overclock you need to use a custom Kernel[ DoomKernel]. with Stock kernel overclocking not possible. To use a custom kernel you need to unlock the bootloader. [which is little bit sensitive]
Click to expand...
Click to collapse
This is plain wrong.
I will offer the module, but now is still in development, since the time_in_state table is still wrong (but that doesn't mean CPU doesn't go to 1200Mhz with any governor installed). Also, I don't know if I will ever fix the time_in_state since it is boring to disassemble - but it can be done.
Here are some screenshots:
1) Running at 1200MHz, but SetCPU insists the maximum frequency is 1024MHz - it probably uses some other values instead of the one on the /sys/devices/system/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) SetCPU Native Benchmark (at 1200Mhz it is around 600, and at 1024MHz it is arround 800 - lower is better)
Although things could have been easier if the kernel would export some symbols - nonetheless it can be done by using the /proc/kmem dump in a similar process described here http://code.google.com/p/milestone-overclock/wiki/Disassembly (but adapted to msm instead of omap2).
I will post a full article too - but I have to write it first - on how to do this...
If you guys are interested or having any questions, just post below ..

Great project man. o:
Btw how's the work coming along on those flashable modules ? Cause module loader loads the module randomly in the middle of a game and it gets stuck. :/

WOW.
please work on these..
i am on locked bootloader and dying to overclock.
do it. go go vulian
---------- Post added at 10:36 AM ---------- Previous post was at 10:35 AM ----------
i want my arc to have cpu values that of an arc s.
oc to 1.4g with same cpu states as that of arc s.
my device is ready for testing. waiting for guide.
---------- Post added at 10:40 AM ---------- Previous post was at 10:36 AM ----------
+1000
please do it.
---------- Post added at 10:56 AM ---------- Previous post was at 10:40 AM ----------
i read the article. most of it went above my head. i understood few things though.

Nice try mate!
But why 1200 and not 1400Mhz like by default in Arc S?

thanks for the support guys
I did not try to go to 1.4 Ghz since I believe I need to up a bit the voltage and I did not yet identified kernel memory spaces where this has to happen.
I'm still looking to see if time_in_state can be adjusted - the table seems dynamically allocated and it makes its detection a bit more tedious since it doesn't have a fixed address in memory upon each reboot.
I'm wondering if it is needed to know what time in state is, seems more useful for battery saving but since the goal is to overclock ..

Good news - time in state table is fixed.
Noticed a few glitches with the time_in_state programs (mostly SetCPU).
Since the phone starts with 1024MHz but then is changed by the module to 1200MHz, some programs have small bugs because they remember the initial frequency. For example, after module is inserted, SetCPU somehow considers the minimum frequency to be 245MHz but a touch of the slider makes it go back to 122MHz.
This is now the only small inconvenience ..
Also, the smartassV2 module I've built has the max frequency set to 1024MHz, but I will recompile and offer them as a bundle to have 1200MHz hard coded. It is actually faster to have the speeds hardcoded instead of detected on the fly, since it makes the transitions quicker ..
Below few screenshots:
a) SetCPU showing correct Max frequency.
b) CPU Spy showing time in state ... it uses also deep sleep.
c) SetCPU bogomips:
One last thing...
I cannot add all Arc's S frequencies. It is easier to 'patch' the kmem and have the phone go to 1200MHz instead of 1024MHz instead of adding new values - because time_in_state table is allocated dynamically when phone boots to have 6 states. There's no space allocated for additional frequencies. If I add another value at the end (and patch the indexes) - some other variable put there by the kernel could be overwritten.
I could allocate the table in the module and update the global pointer to the new space - but it means more code which now doesn't seem necessary.
I will do some tests with 1400 instead of 1200 ..

keep going...
waiting for your release.
finally oc.
---------- Post added at 10:14 AM ---------- Previous post was at 10:11 AM ----------
not a worry for not implementing all Arc s frequencies.
in first hand, get this working..
thanks for hard work

VICTORY!!!
First, for happy side, here are the benchmarks:
a) AnTuTu 3373 vs 3069 (about 10% increase according to it).
b) Linpack 38.05 vs 33.5
Second, for drama side:
SetCPU native results from the initial posts above ended up to be fake. Don't know what SetCPU was doing but were incorrect. I'll explain.
Wanting to put some screenshots of OC improvements, I tried out Antutu and linkpack. To my surprise / shock, they were both offering the same values for the two speeds, 1200MHz and 1024MHz. I could not believe, how come the speed was now 1200 but results the same ???? Also, SetCPU did report an massive improvement, right ? From 800 down to 600 ...
Unconvinced, I found a PI Calculator, and tried it out with 10000 digits, it also reported same results 10.3 seconds .....
So ... going back to the source code I found out that frequency was actually controlled by the PLL rates and I was not modifying those, the CPU was actually phisically running at 1024Mhz. I lost trust in SetCPU with it's native tests (which now return about 500 when I finally fixed the code).
I thus dug more and found the correct PLL rates - and changed them to the real 1200MHz. Indeed the phone switched to the correct frequency and all performance tests above show the increase.
Tests were done with Performance governor on (max speed).
PS: PI Calculator now reports 9.3 seconds for 10.000 digits, and improvement of 10%.
I will release the module very soon now.

Hurray!
waiting for module and guide on how to implement it...
---------- Post added at 02:20 PM ---------- Previous post was at 02:19 PM ----------
btw, this time I understood some of drama part.
improvement.

It will be very simple - just:
Code:
insmod overclock.ko
To run it at boot time, it can be done from GUI using apps as Module Loader or Script Manager (SManager).

viulian said:
It will be very simple - just:
Code:
insmod overclock.ko
To run it at boot time, it can be done from GUI using apps as Module Loader or Script Manager (SManager).
Click to expand...
Click to collapse
or use install-recovery.sh which works like init.d folder

viulian said:
VICTORY!!!
First, for happy side, here are the benchmarks:
a) AnTuTu 3373 vs 3069 (about 10% increase according to it).
b) Linpack 38.05 vs 33.5
Second, for drama side:
SetCPU native results from the initial posts above ended up to be fake. Don't know what SetCPU was doing but were incorrect. I'll explain.
Wanting to put some screenshots of OC improvements, I tried out Antutu and linkpack. To my surprise / shock, they were both offering the same values for the two speeds, 1200MHz and 1024MHz. I could not believe, how come the speed was now 1200 but results the same ???? Also, SetCPU did report an massive improvement, right ? From 800 down to 600 ...
Unconvinced, I found a PI Calculator, and tried it out with 10000 digits, it also reported same results 10.3 seconds .....
So ... going back to the source code I found out that frequency was actually controlled by the PLL rates and I was not modifying those, the CPU was actually phisically running at 1024Mhz. I lost trust in SetCPU with it's native tests (which now return about 500 when I finally fixed the code).
I thus dug more and found the correct PLL rates - and changed them to the real 1200MHz. Indeed the phone switched to the correct frequency and all performance tests above show the increase.
Tests were done with Performance governor on (max speed).
PS: PI Calculator now reports 9.3 seconds for 10.000 digits, and improvement of 10%.
I will release the module very soon now.
Click to expand...
Click to collapse
speak ENGLISH. lol. i can't understand, but, where is the overclock.ko? hehehe

The overclock.ko will come in two flavours
One for 1200000Hz another one for 1401600Hz.
I have posted an article on my blog on the procedure followed to create the module: http://hex.ro/wp/blog/overclocking-an-android-phone-running-with-an-msm-core/
I've tested the 1.4Ghz frequency with 1200mV voltage and it resets in Antutu towards the end of the 3D test. However, I've upped the voltage to 1250mV and I've ran 3 Antutus with no problems! But boy it gets hot.
Here are some benchmark results from 1024000Hz up to 1401600Hz
a) 37% in CPU Integer operations
b) 41% in CPU Floating Point operations.
This generates almost 20% increase in total performance!

viulian said:
I've managed to overclock my Arc (running Arc S latest ICS ROM) to run at 1200Mhz - all this WITHOUT a custom kernel and without the bootloader unlocked and so on.
I've read oppinions like this one: http://talk.sonymobile.com/message/184828#184828:
This is plain wrong.
I will offer the module, but now is still in development, since the time_in_state table is still wrong (but that doesn't mean CPU doesn't go to 1200Mhz with any governor installed). Also, I don't know if I will ever fix the time_in_state since it is boring to disassemble - but it can be done.
Click to expand...
Click to collapse
its very much possible...
if u have the time to get it working, here is MSM7x30 specific module for this type of overclock:
https://github.com/coolbho3k/vision_oc
viulian said:
The overclock.ko will come in two flavours
One for 1200000Hz another one for 1401600Hz.
I have posted an article on my blog on the procedure followed to create the module: http://hex.ro/wp/blog/overclocking-an-android-phone-running-with-an-msm-core/
I've tested the 1.4Ghz frequency with 1200mV voltage and it resets in Antutu towards the end of the 3D test. However, I've upped the voltage to 1250mV and I've ran 3 Antutus with no problems! But boy it gets hot.
Here are some benchmark results from 1024000Hz up to 1401600Hz
a) 37% in CPU Integer operations
b) 41% in CPU Floating Point operations.
This generates almost 20% increase in total performance!
Click to expand...
Click to collapse
just saw this
nice work with the how-to on the blog...

Thanks for the link.
I've checked it but is incomplete - it doesn't handle the time_in_state file ( cpufreq_stats_table kernel variable).
Mine goes on a similar route but :
a) handles the time_in_state
b) is unloadable (which the vision_hc doesn't do - it doesn't go back to stock if you want rmmod it). Mine switches back to stock.
But a good effort on that one also!
Will put them up tonight.

very nice, really looking forward the release to try it

Is it possible on the ARC S too ? Maybe 1.6 Ghz ?

@Dark Fable - About the Arc S - I could but I need remote access to a phone to be able to dump specific addresses into memory and adjust the constants from the code.

tRippinthehead said:
or use install-recovery.sh which works like init.d folder
Click to expand...
Click to collapse
How do you use install-recovery.sh to boot modules?
Sent from my SO-01C using xda premium

Thanks Vuilian.
i want to implement this.
what is to be done?
i find no modules in here.

Related

Voltage Control - control OC/UV for OC kernels.

I take no responsibility for ANY damage / data loss may occur. Use this at your own risk. Beta quality software!/Alpha quality features!
The news:
Completely rewritten whole app! Epic 4G FCs gone thanks to theimpaler747
Voltage Control Extreme unlock Key on Android Market!
For now features exclusive to Extreme version are:
+ overvolting capability (max +50mV, 1500mV absolute maximum)
+ increased uv range (max -250mV)
Click to expand...
Click to collapse
Sources available, project on google code:
http://code.google.com/p/voltage-control/
Look for kernels with this label:
Kernel developers who added VC support please show this image in your topic
{
"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"
}
Uploaded with ImageShack.us
Features:
- minimum/maximum CPU frequency choosing
- selecting IO scheduler
- selecting CPU governor
- changing voltage per frequency
- chosing which frequencies should be used and which shouldnt
- saving settings to be automatically applied at boot (init.d script)
- saving/loading a OC profile
- well designed and highly optimised UI (I hope..)
- robust kernel detection, support of not-so-well-working kernels
About donations:
This software is available free of charge.
It cooperates with OC kernel by raspdeep.
It uses some code from: MarketEnabler (Fool your market to make all apps visible!)
If you find this software useful, please consider funding a beer and pizza. There is a "Donate to me" link just over my avatar.
Donator list:
nitr8
kalpik
laststufo
glitterballs
screwyluie
Gembol
Coreym
Thanks!
How to?
Generally idea is simple: make changes to one tab and hit apply. If any changes have been made apply/discard buttons appear on bottom.
The first tab, "General" allows to change Scheduler,Governor/min and max frequencies.
Make changes and click apply
So, you want to pick a maximum/minimum frequency?
Just chose from slider and hit apply.
Governor/scheduler can be choosen by picking from the list, then hitting apply.
You can always discard changes before applying if you want start from loaded settings.
The "Advanced" tab has sliders to control undervolting settings and green/red icons, representing enabled/disabled state.
(green = enabled, red = disabled)
Pick your settings and hit apply, or discard and start over.
Profile support:
If you want to save as boot or as profile, you need to make adjustments and on "General" or "Advanced" tab and then apply them where applicable.
To save as boot -> press menu key, then select "Save as boot settings".
To save as profile -> press menu key, then select "Save profile".
Boot settings are automatically loaded on every device boot.
Profile settings can be loaded by pressing menu -> "Load profile"
Both "boot" and "profile" settings can be deleted from menu.
RECOVERY
If Your device freezes after boot because of too agressive boot settings:
Flash Voltage Scheduler Remover by user Coreym, via CWM. Don't forget to press thanks under one of his posts!
FAQ:
Q: Extreme version?
Yes, I wanted to give some extras for people that support my work.
For now features exclusive to Extreme version are:
+ overvolting capability (max +50mV, 1500mV absolute maximum)
+ increased uv range (max -250mV)
Q: What is it?
Its voltage control app for undervolt and overclocking kernels providing sysfs interface, designed and implemented by raspdeep (thank You!) It is being tested on his kernel releases and I can guarantee (kind of) its functionality on those kernels.
The idea of the app is to keep all simple as possible, not adding any startup services and reusing existing solutions (such as init.d support).
Q: What does it mean to undevolt, and what is overclocking?
Read more in "OC / UV 101" section That is a detailed(sort of) explanation what UV/OC means.
Check this great overclocking/undervolting guide by shaolin95 (thanks!) and discussion topic!
Prerequisites:
-root (superuser + su)
-busybox
-OC kernel supporting either UVLF and UVHF (Version 1.61) or UV_mV_table (1.97 and up)
-init.d scripts support for apply on boot
xan said:
Hi I've seen some reports on market that new version is broken on Epic4g. Anybody knows whats goin on?
Logcat output welcome.
Click to expand...
Click to collapse
First!!!
I tried it with the Bonsai Rom a couple of days ago and it worked for me. I purchased the extreme and I undervolted straight across the board 250mv and I have no problems so far. I think it all depended if the kernel on the phone is compatible or not.
xan said:
Hi I've seen some reports on market that new version is broken on Epic4g. Anybody knows whats goin on?
Logcat output welcome.
Click to expand...
Click to collapse
It made me smile when I saw that you posted. Taking a personal interest and such.
I think you might be getting reports from Syndicate people. Syndicate's Twilight kernel didn't implement sysfs very well. Voltage Control will recognize it but changes can't be made and some clocks aren't read correctly. PimpMyCPU won't read it all.
Genocide kernel, Vision kernel, and Bonsai's kernels all work flawlessly.
Thanks
This rewrite costed me *a lot* of work seeing 1 star ratings on market makes me sad ;p
I'm using twilight kernel without any problems but I'm no longer on SFR anymore.
Sent from my SPH-D700 using Tapatalk
xan said:
Thanks
This rewrite costed me *a lot* of work seeing 1 star ratings on market makes me sad ;p
Click to expand...
Click to collapse
Yeah, that's not right. My Epic doesn't play nice with Voltage Control but I know better than to rate the app bad. These Epics each have a mind of their own. Some like undervolting, some dont. Some like certain ROMs better. I can run 1400 all day but no undervolting for me
Sent from my SPH-D700 using XDA Premium App
FCS on some kernels fixed ;p
Thanks going to theimpaler747, for detailed bug report and testing
I have found multiple issues with the Twilight kernel, I love the rom, just Genocide has been a lot more stable AND I never had any issues with Voltage Control. I was wondering if you might incorporate multiple profiles like SetCPU? I had to start looking for a different program when it would constantly lock my phone when trying to use them and then I found Voltage Control, and after the rewrite it just makes it that much easier to use.
This might be good, true.
Multiple profiles seem doable...
xan said:
FCS on some kernels fixed ;p
Thanks going to theimpaler747, for detailed bug report and testing
Click to expand...
Click to collapse
Happy to have helped out for a great app!
hey all, im running SFR 1.1.1 with its stock twilight kernel.
i use to run genocide, but i think i messed up with the UV features and i started getting a lot of lockups. right now i just run setcpu with 1300/400 and i seem to be ok.
i think i bought the WRONG voltage control app also. i bought voltage control extreme by sulph8.
i would love to get back to 1400/400, but im really unsure what the best course of action is. are there default voltage settings in this app? initially, i'd like to run 1400/400 with all the standard voltage settings to see if my phone acts normally again.
Well, Voltage Control by nitr8 is a unlock key for 'mine' voltage control. For now all money goes to him, he promised to send it to me.
To revert to stock settings -> Chose delete boot settings and reboot.
Viola, you have booted on stock settings!
Then set desired frequency limits and you are done
so i should set my setcpu back to 1000, remove setcpu, flash genocide kernel, install your voltage control and start from there?
Sounds ok
what should i set my governers to?
Well, depends on your experience with kernel, generally:
For battery saving try conservative.
For reasonable performance try interactive/ondemand or smartass.
Some kernels have bad implementation of some governors, which can make them unstable, so you need to test, test, test and observe
From my experience smartass (where implemented) is very smooth.
Stock Samsung Gingerbread kernels came with ondemand (not entirely sure)
Stock Froyo/Eclair was conservative.
useport80 said:
so i should set my setcpu back to 1000, remove setcpu, flash genocide kernel, install your voltage control and start from there?
Click to expand...
Click to collapse
Well, I just flashed it again on Genocide. I am running 1400/200 on demand. I am going to check CPU Spy to see if it performs similar to SetCPU. Curious if on demand still drops below 200 if its set as my minimum like Set did
Sent from my SPH-D700 using XDA Premium App
Voltage Control doesnt use any "hacks" for setting frequencies, it just works with standard implemented sysfs.
The governor is responsible for respecting max/min frequency, its kernel implementation that should keep CPU running within desired freqs.
Can the UI include a CPU temp and aninfo page?
Sent from my armed and operational battle station.
SGS's only thermal monitor is refferred as "battery"...
Info page is somewhat coming, but I have to be sure what and how to put there.

[krn.modules] smartassV2 governor for Galaxy S3 stock Kernel

I've FINALLY managed to compile smartassV2 module for SGS3's stock kernel.
{
"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"
}
The trouble is that the stock kernel does not accept modules...
Every attempt I made ended up with an error about the version of module_layout. I even wrote to Samsung asking for clarification, but I have no reply yet (after about 24 hours).
I will write a post on my blog describing all the investigations; I had to go the hard way and patch /dev/kmem to skip the validation. I've created a small executable which does this.
The good part about it ? It is already included in the .tar.gz below and once executed, it allows any modules to be installed on stock!
I am almost sure that Samsung did not provide the up to date .config file (I am using the Update 1 .tar file) since I had to disable flags in .config to get rid of "unknown symbol" errors. And another proof, the validation errors related to the version of the module_layout symbol.
Thus, the install procedure is a one step longer, patchs3k needs to be executed once, and then any module can be inserted.
Installation procedure:
a) mount your /system in RW mode.
b) create folder /system/xbin/lib
c) copy the contents of the archive to that folder.
d) execute the provided load_smartassV2.sh script (which already does all the steps: calls patchs3k, inserts the module and sets it as current governor).
That's it!
Observations:
a) only for stock kernel.
a1) repeat after me: I will not attempt to run patchs3k if I already flashed a different kernel!
b) load_smartassV2.sh script is made so it is also runnable by Script Manager at boot as super user using the paths in the Install procedure.
c) if you have another way of loading things, you need to figure out how to execute the patchs3k file before inserting the module - I found that the easiest is with the method above.
d) smartassV2 supports lots of configuration options. The only think I made default is the ramp up increment, which is in 500MHz so you don't have to wait forever until the phone gets to max speed. The ramp down I left it at 100MHz increments. All these are configurable and you can echo values in the files found in the list below.
A brief description of each field (but with different values since back then I did it for Sony X10) is found in the Settings part of this post: http://forum.xda-developers.com/showthread.php?t=1212012
Code:
[[email protected]]/sys/devices/system/cpu/cpufreq/smartassV2# ls -1
awake_ideal_freq
debug_mask
down_rate_us
max_cpu_load
min_cpu_load
ramp_down_step
ramp_up_step
sample_rate_jiffies
sleep_ideal_freq
sleep_wakeup_freq
up_rate_us
Download:
Update: download disabled until hotplug issues will be fixed! Please check 4th post below, thanks AndreiLux!
Use it at your own risk!
cpufreq_smartass2_sg3_1.0.tar.gz
Enjoy!
Im really interested in the part regarding the patch to use any module without validation...
Waiting for kernel patch
Sent from my Desire HD using Tapatalk 2
The patchs3k is already bundled in the .tar.gz file above - is this what you meant ?
There's absolutely no point in having smartass on this device, especially on a stock kernel since there is no remaining hotplug logic on it to be used, if that would be even possible. It has major detrimental effects on battery life.
However, we would be interested in what you are doing inside of patchs3k to make it load the module properly and to see if we can use any of that to load Samsung's exFat driver module on custom kernels. Sources please?
viulian said:
The patchs3k is already bundled in the .tar.gz file above - is this what you meant ?
Click to expand...
Click to collapse
AndreiLux said:
There's absolutely no point in having smartass on this device, especially on a stock kernel since there is no remaining hotplug logic on it to be used, if that would be even possible. It has major detrimental effects on battery life.
However, we would be interested in what you are doing inside of patchs3k to make it load the module properly and to see if we can use any of that to load Samsung's exFat driver module on custom kernels. Sources please?
Click to expand...
Click to collapse
That's what i mean
Sources for patchs3k please
Sent from my Desire HD using Tapatalk 2
About the sources - I will create the article these days but I believe it doesn't matter; if you already have control over the custom kernel then you can just make it accept everything and see how things behave.
The trouble with what exFat (which I could also investigate if I have time) is that the CRC checks are thorough and if ANY of the structs used by exFat are different that what the kernel is build with, then there could be big issues with corruption of data and so on. Only Samsung (or sheer luck) could solve this issue. But I did not investigate so these are just assumptions..
@AndreiLux
Then it means I was extremely tired thanks for the explanations with hotplug. I have disabled the download so people won't take it without reading below.
One other thing, the kernel (3.0) like all other kernels has the posibility to create high priority work queues - alloc_workqueue with WQ_HIGHPRI as flag. It means that the work queue that rises the frequency should have higher priority so you don't notice any lag for example.
What I don't like about pegasusq is that it doesn't appear to create high priority work queues. I did not study carefully, but a quick search on the cpufreq_pegasusq.c doesn't show the high priority flag. Maybe the phone one has it ?
They also keep a history of the CPU usage (probably used with hotplugging also).
So I believe the two factors above might contribute to the lag I notice when waking up the phone.
I did notice this weird fact with the cores of the CPU not turning on or off with smartass2 - or remain in the state that pegasusq left them. I was checking test results and it appear to behave normally and have all 4 cores ON during stress test. It was late in the night and I did not check that they are not also shut down.
Maybe I should work on a smartass3 since I can add hotplug logic to smartass - but it is tedious you have to use locks and so on - and I don't have much time.
I think I have more success here with just building ROMs and not digging deep since you just take what everybody does and put a small thanks in a corner then you get all the Thanks and donations.
viulian said:
So I believe the two factors above might contribute to the lag I notice when waking up the phone.
Click to expand...
Click to collapse
The wake up lag is irrelevant to priorities or anything, it's caused by a) if you are referring to the wake up delay then it is because of the kernel is waiting for the modem to wake up which takes an eternity. b) if you are referring to unresponsiveness at the lockscreen, it was due to something in the Wifi drivers.
@AndreiLux Ok cool the modem interaction worths an additional look then!
BUT I have good news!
cpufreq_smartass2.c will be able to have hotplugging! I did a test module that activates cores and shuts them down and there it works.
In few days I will release the smartass2 with hotplug support for stock kernel.
One thing I saw, the pegasusq does NOT have a high priority work queue to bring the frequency up meaning that other work queues could interfere and actually introduce delays. It also has a complex logic to decide when to bring another core back online and it brings them back one by one.
I would like to have feedback from the community on what should be the bringing up / down behavior for each core for the new smartass2 governor.
I am tempted that upon waking up, to actually bring back all 4 cores at once. It is easier for me, FASTER to be executed (instead of going through heaps of samples to decide if one more core is needed) and is also on the same track with the initial smartass concept, FAST AND QUICK or go slow.
The delicate thing is how to handle shutting down cores. I can make it go back to 1 core and if loaded then bring back all again.
What do you guys think ?
I like this new way in customizing phones design by the community, not by what the rom cooker / kernel builder decides and that's it.
I find it fine and dandy, but the most critical point is why you would want to port such a feature to smartass when you already have pegasus with much more optimal frequency scaling. Also the frequency of which the cores are being hotplugged is incredibly high with runqueue sample rate/times of 50 milliseconds and time of bringing up the cores of only a couple of microseconds, all several orders of magnitudes below usual frequency scaling latencies. We've ported it to the S2 with magnificent results and ditched interactive based governors a long time ago, there is no benefit to it. Exynos is relying on aggressive and optimal DVFS scaling for power efficiency and interactive governors do not suit that too well.
It means that the work queue that rises the frequency should have higher priority so you don't notice any lag for example.
Click to expand...
Click to collapse
This is fine in theory but does it hold up in practice? The S3 is already considered as the smoothest running device running Android or even the smoothest device bar the iPhone.
Not trying to critique your work but I think your approach into improving things here is a bit flawed and viewing it from an odd angle.
Excellent constructive feedback! Thank you,
Let me explain my point of view:
1. First, there are many users that do not feel comfortable putting a custom kernel on the phone. Personally, I do not trust custom kernels even if they come with source code. Theoretically is correct to have the open; but I save a lot of time customizing what I trust (Samsung's stock kernel) than checking all the patches of custom kernels to start trusting them. And is not about privacy and so on, but I need the phone to work and I can't really tell if the custom kernel won't decide to play tricks when I mostly need it to work. So I stick with defaults and try to customize here and there.
2. Second, I have no idea how pegasusq compares with smartass2 unless I see them running - also, since I do debugging and so on, the phone uses different frequencies (mostly plugged and running stuff) and so I can't say if pegasusq matches the time_in_state pattern that smartass2 shows. Too early to tell.
And if it can be done why not ? It gives me more experience, it gives people alternatives. Plus, S3 is better than 4s, for sure, but what about the next phones appearing in the next half of year ?
This is just warm up for me to the phone, I have other ideas to dig and hopefully something will come up out of them (at least until the new big market killer comes around and we all jump ship to that one )
Any progress on this
None as it doesn't support multicore correctly...
Sent from my GT-I9300 using xda app-developers app
That was what he was trying to accomplish.andreilux and Simone gave him some new pointers.that's why I ask.
I had no time to take care of it but I am curious to do at least a bare metal version that will wake up with all 4 core at once instead of one by one which I believe pegasus does.
With the default one, the phone is sluggish for half a second when unlocking - I can see it because the launcher struggles for a bit.
But is true, smartass doesn't support cores activation/deactivation.

[KERNEL][AOSP | 4.2.2][DUAL-BOOT] Greenblob 1.1.1 LTS

{
"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"
}
Credits to codeworkx for the base aosp kernel!
Features:
More shedulers
row I/O scheduler
sio I/O scheduler
vr I/O scheduler
More governors
cpufreq_smartass2
cpufreq_lagfree
cpufreq_pegasusq
cpufreq_lazy
cpufreq_lulzactive
cpufreq_minmax
cpufreq_abyssplug
cpufreq_wheatley
cpufreq_scary
cpufreq_HYPER
Updated to linux kernel 3.1.0 -rc1
Dualboot support
Brightness adjustments for darker screen settings (good in low light conditions)
Synced with latest codeworkx fixes
Undervolting support
USB fastcharge support
Cleaned up arm source
Compiled with hard float instead of soft float
Greenblob 1.1.72 LTS (Changelog):
Added added row I/O scheduler
Added added sio I/O scheduler
Added added vr I/O scheduler
Upgraded from 3.0.72 to 3.1 -rc1
500 commits FTW! Happy changelogging on git
Greenblob 1.1.1 LTS (Changelog):
Updated kernel from 3.0.36 to 3.0.72 (We´re now on latest linux 3.0.x releases)
Updated ~700 commits (20 Github pages lool). Those are from 3.0.36 to 3.0.72
Hopefully working now on latest cm nightly (working here on my chameleon os)
Go for changelog on github!
Greenblob 1.1 LTS (Changelog):
Fixed auto reboot in recovery
Fixed rebooting during backup in recovery
Fixed some governor stuff
Updated dualboot
Greenblob 1.0 LTS (Changelog):
Added governors
Added 'long-time-support'
DevPrev 6.3 (Changelog):
Added usb fastcharge
Added undervolting support
Default cpu speed at 300mhz
Synced latest changes from cm repo
DevPrev 6.0 (Changelog):
fixed cpu staying at 600mhz
added DualBoot support (Credits to chuandinh for the method. Its the same as Galaxy Note 2 uses)
All dualboot related questions please visit the dualboot thread!!
DevPrev 5.2 (Changelog):
restart after quitting coding kernel
adjusted gamma values for smartphone usage in dark light
wifi driver update
mhard float instead of msoft float
cpu frequency change based on screen on/off
touchkey timeout 2 seconds
cleaned up arm source
TWRP for now - I was just trying something, will revert to cwm soon
Important:
There are no other features than mentioned in the changelog. I restarted the kernel and I think I wont add OC etc. This kernel is not ready yet but damn stable and fast. No need to oc anything (my opinion).
For brightness (gamma) adjustment: You will notice a heavy brightness drop between lowest and lowest +1 step brightness. The one before the lowest was the lowest brightness that comes with normal cm kernel. I will make a better transition between the last two steps within the next update.
DevPrev 5 (Changelog):
Now compatible with cm10.1
Some bugfixes
New control app now on google play!
DevPrev 2 (Changelog):
Updated to latest codeworkx sources
Added undervolting support
Added usb fast charge mode support
Readded 1.2Ghz slot
Greenblob kernel control:
This is the official app to control all features of Greenblob kernel (for now available on Galaxy S2G, visit XDA for infos).
But most features can also be used on any other device! (Ok, not any but for a big number).
You can:
- Change status of tweaks
- Cpu OC
- GPU OC
- Change voltage
Installation:
As usual: Flash the flashable .zip in cwm. Only working on aosp jellybean roms!
Download:
Download here
FAQ:
How do i change voltage?
Use the latest version of setcpu, leantweaks, cputuner, or your ROM's built-in tools.
Do i need to wipe dalvik/cache?
In general there's no need, but it doesn't hurt so if you have time go ahead. Posted Image I don't wipe.
What's the variable on the GPU OC?
The kernels GPU is now set to stock 307Mhz by default. You can adjust that by using Variable GPU OC (see a separate FAQ entry below).
When you go from say 307 to 512Mhz, you will not experience near double performance increase. Due to the factors outside the GPU module (ie. memory bandwidth limitation), you can't truly OC the GPU. In fact, most people can't tell the difference between 307, 384 and 512. Nenamark2 will roughly give you the following scores: 307/25fps, 384/28fps, and 512/31fps.
Some of you have seen the note from Colin, the Google kernel engineer, not to OC the GPU because using the OV_UV voltage slot will drain the battery. Greenblob kernel uses the same voltage for both OV and OV_UV slots. So there's no danger of battery drain there.
My phone doesn't seem to be deep-sleeping, what gives?
(assuming you checked in the right place like cpuspy) In terms of deep-sleep, there's not a whole lot going on in the kernel. It works or it doesn't - and I can assure you that I test every release (well almost every release) for deep-sleep before I release.
19 out of 20 times it's either 1) some sort of background process that's preventing your phone from going into deepsleep, or 2) something's misconfigured in your ROM, or both. Also connecting to USB will prevent phone from going into deepsleep.
I'm having unusual battery drain - help!
First of all, our i9100g (AS every Smartphone ^^) has very poor battery life while in active use. It's downright horrible while screen is on - screen is definitely the main culprit and there's not a whole lot I can do about that.
Custom undervolting can help or can hurt. This is mainly due to SmartReflex (class1.5) which auto-calibrates the ideal voltages for you. In fact, with SR you don't really need to use the custom undervolting feature for frequencies other than the 2 lowest. It does a great job calibrating higher frequencies. I personally don't touch it.
The "notrim" versions are an exception because I had to disable SR1.5 for the trim override to work. There's no auto-calibration going on there. Feel free to mess with custom undervolting on the notrim versions.
Now, if you've already accepted the horrible battery life while screen is on, but have questions about battery drain while idle - read the next question.
I'm having unusual battery drain while screen is off, or phone is sleeping - help!
First, let's find out if you're phone is going into deep-sleep. Install CPUSpy, unplug phone, turn off screen, and leave the phone alone for 5-10min. Turn the screen back on, launch CPUSpy, and see if you see an active entry for Deep Sleep. If so congratulations - read on.
If you've determined that your phone is not entering deepsleep by using the above method, read my entry above that says "My phone doesn't seem to be deep-sleeping". I've heard that removing SDM.apk helps as well as rebooting the phone. Also try turning your bluetooth on and off, and launching camera app and closing it.
If you've determined that your phone is entering deepsleep fine but still feel like battery drains, read the next question.
I'm having unusual battery drain while phone is in deep-sleep - help!
First make sure you are absolutely positive that deep sleep is working (read the previous question).
While on my kernel *and* connected to Wifi, you shouldn't drain more than 2% battery per hour *average* while in deep sleep (based on 5-8 hour continuous deep sleep). With wifi turned-off, my guess is probably no more than 3-6% per hour, depending on signal strength.
tip 1: If above is not happening for you, first charge the phone all the way and reboot. Let things settle a bit - give it a day or so. If you're using Battery Monitor Widget (which is not accurate for gnex), things should eventually settle between -2mA and -60mA per sample.
tip 2: Install BetterBatteryStats and look at which wakelocks dominate. Google search for names of the wakelocks to see how you can fix them.
tip 3: http://checkthis.com/d87t
If nothing seems to help, you can try the "notrim" version, but stick to speeds between 350 and 1350 (don't use OC slots). The notrim version has SR1.5 disabled which could help for those of you with drain issues on my other kernels.
What is SmartReflex?
SmartReflex performs continuous dynamic voltage scaling around the nominal operating point voltage according to silicon characteristics and operating conditions.
My stable and experimental builds will have SR Class 1.5 enabled by default.
You can disable SR via sysfs
How do I use Variable GPU OC?
You can use Lean Tweaks by Jake, or use the built-in "oc" script. Both leantweaks and my oc script will create an init.d script so the setting sticks at boot. My "checkt" script will also show the current GPU max speed. Note that 512MHz will probably not work for everyone.
307Mhz (stock) is set default by the kernel.
Open Terminal, and type for stock speed of 307Mhz: oc gpu 0
for 384MHz: oc gpu 1
for 512Mhz: oc gpu 2
FAQ partly taken from leankernel! I changed the important parts for us! Thanks to them! http://forum.xda-developers.com/showthread.php?t=1790675​
An app for variable gpu oc is already in progress! For now please read the FAQ​
Great work fuss. It says gnex somewhere in op btw.
Sent from my GT-I9100G
Such a Fast Releas
iXanza said:
Great work fuss. It says gnex somewhere in op btw.
Sent from my GT-I9100G
Click to expand...
Click to collapse
Thanks ^^ I changed it
And I also changed the battery life expectation
Sent from my GT-I9100G using xda app-developers app
Thanks for sharing,that works great.
any chance to get this kernel for stock rom..?
Sent from my GT-I9100G
+100 for the awesome Kernel !
Sent from my GT-I9100G using Tapatalk 2
First of all, WELCOME BACK FUSS.. Back with bang I can say. New Kernel and it's more powerful, efficient and features. WOW. You Rock. Thank you fuss :beer:
Sent from my GT-I9100G using Tapatalk 2
Is it safe to install with latest cm10 nightly?
Sent from my GT-I9100G using Tapatalk 2
ottomatteseo said:
Is it safe to install with latest cm10 nightly?
Sent from my GT-I9100G using Tapatalk 2
Click to expand...
Click to collapse
Yes
Sent from my GT-I9100G
iXanza said:
Yes
Sent from my GT-I9100G
Click to expand...
Click to collapse
Thnx
Sent from my GT-I9100G using Tapatalk 2
hi fuss, welcome back to XDA, i though you will disappear for long time :laugh::laughim joking)
and BIG THANK TO YOUR NEW WORKS Greenblob
may i flash it to codebox 1.9.0? any suggest to flash?(im still using codebox whatever it no longer support:good: because it is awesome)
IloveXDA512 said:
hi fuss, welcome back to XDA, i though you will disappear for long time :laugh::laughim joking)
and BIG THANK TO YOUR NEW WORKS Greenblob
may i flash it to codebox 1.9.0? any suggest to flash?(im still using codebox whatever it no longer support:good: because it is awesome)
Click to expand...
Click to collapse
Flash GreenBlob through CWM
Sent from my GT-I9100G using Tapatalk 2
My phone freezed in the instance i got to the menu. Now it boot loops when i has reached the lockscreen. What should i do now?
I've just installed it. I see in recovery version is now 6.0.1.9 is it still using blob crap for android? Thanks
Sent from my GT-I9100G using xda premium
kernel from the sky =) =) big big thanks fuss!!!!! =) =) what a speed!!!!! =P
cesco73 said:
kernel from the sky =) =) big big thanks fuss!!!!! =) =) what a speed!!!!! =P
Click to expand...
Click to collapse
Sorry thats FUSS not sky
Sent from my GT-I9100G using Tapatalk 2
im sorry to said that, but im still having the reverting back of the freqency....
any idea? ><??

[Q] AHD custom kernel and settings

Hey guys and gals,
I've been searching AHD forums for a while now and I could find zip zero result on custom kernels even though I'm sure that I've read people write about Aaargh kernel before... [his user name's spelling ain't really helping either....]
So here I ask: where can I find it (or other custom kernels?), read what people have to say about it and what results are to be expected?
Lastly, what are you guys settings? I mean what voltages are you guys using? I understand that no phone/cpu reacts the same to undervolting, but I'd like to get an idea on how low I could expect to go...
I'm not really after overclocking as I find my AHD's performances acceptable at stock values; I'm just after better battery performance really.
Thanks in advance for your replies; I will be offline for the next few days, but will sure give thanks hits upon my return.
Cheers
/AL
[] AL [] said:
Hey guys and gals,
I've been searching AHD forums for a while now and I could find zip zero result on custom kernels even though I'm sure that I've read people write about Aaargh kernel before... [his user name's spelling ain't really helping either....]
So here I ask: where can I find it (or other custom kernels?), read what people have to say about it and what results are to be expected?
Lastly, what are you guys settings? I mean what voltages are you guys using? I understand that no phone/cpu reacts the same to undervolting, but I'd like to get an idea on how low I could expect to go...
I'm not really after overclocking as I find my AHD's performances acceptable at stock values; I'm just after better battery performance really.
Thanks in advance for your replies; I will be offline for the next few days, but will sure give thanks hits upon my return.
Cheers
/AL
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?t=1893050
Ok thanks for the link.
I wasn't searching at the right place and on the wrong device forum...
So in an attempt to make this thread useful, I'd ask again: anybody wants to share their experience with that kernel on AHD?
I mean other than getting a phone that can basically now running up to 2GHz and down to 96 MHz, what did you get from it?
- How (and how much) undervolting did you do?;
- Any noticeable and verifiable battery saving doing so?;
- Any before/after benchmark results to share?
- any observations, bugs or just general opinion on the subject?
Personally, I've noticed once or twice that the phone had a hard time waking up when I used 144MHz (forgot the exact value) as min cpu frequency (no undervolting). The screen would not turn on with either volume rocker or power button...it only did after a lot of insisting... And that was just within a couple hours of testing.
I've since reverted to CM11 kernel since I was eager to find out if a semi-dirty (no stock rom reflashing first) nand backup restore would switch the kernel back. And it did, but then I've also re-installed CM11-M8 for other reason/issues... (that too brought back CM kernel - at least that's what the "about phone" is giving).
Anyhow, the debate is open on the usefulness of that custom kernel. If no one dare to pitch in here, I'll just ask a moderator to delete the thread...
But I'm still eager to find out about how to undervolt as I always did on my Defy.
Cheers
/A
I'm also curious about any battery-saving benefits that can be gained with Kernel adjustments; especially when screen is on (since I drive a lot with the screen on all the time). I have no interest in Overclocking, and would rather have the phone last as long as possible and still be useable.
Currently using arrrghhh's kernel (May 23 version) with:
1. Min 384000 (default)
2. Max 1458000
3. Scheduler: deadline
4. Governor: smartassV2
5. App: Trickster MOD
Also, the only way I've been successful in changing anything is by using the Trickster MOD app. Between CarbonROM and the CM11 (epinter) that I'm using now, I've never been able to get the kernel changes to stick. Didn't matter whether I used the default kernel or arrrghhh's, any modifications in my settings always reverted back at some later time.
Trickster MOD uses some workarounds to get it to stay, and I haven't had any issues since.
quasihellfish said:
I'm also curious about any battery-saving benefits that can be gained with Kernel adjustments; especially when screen is on (since I drive a lot with the screen on all the time). I have no interest in Overclocking, and would rather have the phone last as long as possible and still be useable.
Currently using arrrghhh's kernel (May 23 version) with:
1. Min 384000 (default)
2. Max 1458000
3. Scheduler: deadline
4. Governor: smartassV2
5. App: Trickster MOD
Also, the only way I've been successful in changing anything is by using the Trickster MOD app. Between CarbonROM and the CM11 (epinter) that I'm using now, I've never been able to get the kernel changes to stick. Didn't matter whether I used the default kernel or arrrghhh's, any modifications in my settings always reverted back at some later time.
Trickster MOD uses some workarounds to get it to stay, and I haven't had any issues since.
Click to expand...
Click to collapse
do you mean may 25?
{
"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"
}
sliker90 said:
do you mean may 25?
Click to expand...
Click to collapse
No. "CLICK TO SHOW CONTENT", then download the latest version (May 23) that doesn't use SaberMod. Only reason I was using that was because arrrghhh mentioned that SaberMod thing was experimental and may have issues. So I just chose the safe option.
ok thank you
sliker90 said:
ok thank you
Click to expand...
Click to collapse
Since you're a new xda member, I'll remind you that there is a button specially made to thank people... Look at the bottom left of the post useful to you...
As far as the undervolting goes, I found that the free app called "Trickster Mod" can do voltage changes. So I've done a bit more testing with the May 23rd anykernel and my results weren't that great....
First, I went too aggressively and try to lower the voltage by 150mV for every cpu frequency and that made the phone reboot as soon I applied it. I mention this because the lesson here is to
*** NEVER SET THE "apply settings on boot" OPTION UNTIL YOU ARE ABSOLUTELY SURE THAT YOUR NUMBERS WORK FINE. ***
Not doing so might make your phone unbootable and you might not even be able to boot to recovery/bootloader mode to revert kernel/settings....
Ok, that being said and since I'm after battery saving while the phone is in use*, I then went ahead and lowered by a more reasonable 50mV for each frequency (the app let's us move by 25mV steps). That 'worked' fine and I've experienced no sudden reboot. BUT, after some time (30 minutes), I've noticed some slowdowns and I've also had issues with an app that stopped creating video thumbnails. So all in all, that called for the end of my testing and I restore my CM11-M8 nandroid as I'm not going to live with such drawbacks for some slight (still yet to be proven) battery improvements.
So no custom kernel for me afterall.
.... Should this thread be deleted???
You guys tell me.
Cheers
/AL
- - -
*: hence I see no point of lowering the minimum cpu frequency: my phone does not take excessive power when on iddle, it deepsleeps fine and I use airplane mode at night..
*': some have argued that increasing the max cpu frequency allows the phone to complete tasks faster and return to a low power state sooner resulting in a lower overall battery use. I have my doubts on this and I'm pretty sure that it depends on what kind of task the phone is mainly doing. Anyhow, this is not something worth testing at this time... My AHD does its job just fine at the stock max cpu f.

[Guide][Discussion] Advanced Interactive Governor Tweak/Config - Kirin 970 CPU

As all we know, our phone has one of the newest & most powerful CPU in the market : Kirin 970
together with a huge 4000mAh battery, this phone theoritically should deliver an extremely good battery life. And from what i experienced, this phone perform quite admirably.
That being said, when being compared to other flagships in the market (as can be seen here : https://www.youtube.com/watch?v=lXp-4QyJpmo), Mate 10 still fall short to the like of Oneplus 5 which actually has a smaller battery,
biggest factor that might affect that result , aside from the screen resolution difference, is of course, software & kernel optimisation,
in an attempt to get a better battery life out of this device, but without impacting performance, i remember one of the guide made by @soniCron i used to stumbled upon few years ago. This Guide give a very detail insight on how to optimize the interactive governor on almost any device/any kernel/any rom (as long as you have root), and thats what i gonna try to apply to our device - if you want to check the guide yourself : HERE
so i take a look into Huawei Mate 10 Kernel Sources to see the voltage values being used by this processor for each frequency step. And here's the table :
{
"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"
}
from that table, we can see which frequencies are using most power, and where is the most jump in voltage usage happen when switching between frequency.
Higher voltage jump will cost more power, means less battery life.
in conclusion, i found few frequencies which are unfavorable, which is
A53 CPU :
1210Mhz - because it use same power (850000µV) as 1402Mhz, so we better use 1402Mhz instead for better performance with same power cost
1556Mhz - same story, it use same power (950000µV) as 1690Mhz
and
1844Mhz - it use most power, but since this is the top freq, we can neglect it
A72CPU :
1018&1210Mhz - use same power (780000µV) as 1364Mhz, so we better off jump directly to 1364Mhz
1498Mhz - same case, it use same amount of juice (900000µV) as 1863Mhz
and
2362Mhz - it use most power, but since this is the top freq, we can neglect it
_____________________________________________________________________________________________________________________________________________________
Now we take into account of the minimum frequency needed to ensure smooth task (if you dont know what am talking about, read the GUIDE i mention in my opening paragraph) :fingers-crossed:
For Mate 10, i've found the best frequency is as following :
Idle = 509MHz
Scrolling = 1018MHz (Use Chrome browser to scroll Facebook in desktop mode)
Video = 1402MHz (Play 1080p*60fps videos in Youtube app)
App load = 1690MHz (Use any app really)
High load = 1844MHz (Max out just in case)
Using the formula take from soniCron guide, i tried calculate optimum CPU load (this will be used as target load config) config for each frequencies
If you want to see the formulas :
Code:
We want to determine 2 values for every available clock rate: the maximal efficient load and the minimal efficient load. To make this determination, we need to bust out our calculators. (Or spreadsheets!)
For the maximal efficient load, we want to correlate a load value no higher than 90% of a given clock rate before it would be more efficient to jump to the next clock rate–to avoid overwhelming a particular rate while avoiding premature jumps to the next. For this value, we calculate it as:
(clock rate * 0.9) / next highest clock rate
For example, the maximal efficient load for 600Mhz on the Nexus 5X would be caluclated as:
(600000 * 0.9) / 672000 = 80.36% (rounded and normalized: 80)
For the minimal efficient load, we want to correlate a load value at which anything higher would be better served by a higher clock rate. To calculate this:
(1 - next highest clock rate / clock rate) * -1
For example, the minimal efficient load for 600Mhz on the Nexus 5X would be calculated as:
(1 - 672000 / 600000) * -1 = 12.00% (rounded and normalized: 12)
with this config, logically speaking we want to make the Governor to favour the "best" frequencies above, and minimize the usage of unfavourable freqs.
A53
Code:
509Mhz : 45
1018Mhz : 76
1210Mhz : 15
1402Mhz : 81
1556Mhz : 8
1690Mhz : 82
1844Mhz : 90
A72
Code:
682Mhz : 60
1018Mhz : 19
1210Mhz : 13
1364Mhz : 81
1498Mhz : 24
1652Mhz :12
1863Mhz : 80
2093Mhz : 12
2362Mhz : 90
Now that we already get the optimum number, time to apply it
Use your favorite Kernel Manager, in my case, am using Kernel Adiutor, and go to CPU Config - CPU Governor Tunables and input these value (am using Hawktail profile from soniCron thread, as it seems it work best for most of devices, and i already do trial & error with some other value like timer rate as well ) :
A53 (LITTLE)
Code:
go_hispeed_load: 99
above_hispeed_delay: 20000 509000:60000 1018000:25000
timer_rate: 28000
hispeed_freq: 509000
timer_slack: 80000
target_loads: 98 509000:45 1018000:76 1210000:15 1402000:81 1556000:9 1690000:82 1884000:90
min_sample_time: 30000
boost: 0
boostpulse_duration: 80000
A72 (BIG)
Code:
go_hispeed_load: 99
above_hispeed_delay: 20000
timer_rate: 20000
hispeed_freq: 1863000
timer_slack: 80000
target_loads: 98 682000:60 1018000:18 1210000:12 1364000:81 1498000:24 1652000:12 1863000:80 2093000:12
min_sample_time: 20000
boost: 0
boostpulse_duration: 80000
Now you can test it. Do full charge and use it normally, see whether you can see the improvement or not,
Hopefully it helps you as it seems to help me (you can expect no less than 7Hrs to 10 Hrs SoT, am quite heavy user myself, with 2 WhatsApp account and 1 LINE account constantly active. YouTube & Gaming at least hour/day as well). Discussion is more than welcome here, as these are considered an initial calculations that still yet to furtherly fine tuned for our CPU.
I'm not comfortable doing this on my phone yet, but I'm looking forward to hearing from people who are!
Results so far :
Used it and didnt notice any issues. Performance was perfect.
However, I just updated so I lost root.
Does anyone know if I can just root again without wiping stuff or not?
markvd90 said:
Used it and didnt notice any issues. Performance was perfect.
However, I just updated so I lost root.
Does anyone know if I can just root again without wiping stuff or not?
Click to expand...
Click to collapse
Try this one : https://forum.xda-developers.com/mate-10/how-to/guide-mate-10-root-preserve-user-data-t3716547
@otonieru
Isn't it Min Sample Rate value for Small Cores too extreme (30 000)?
On my Kirin960 I use Min Sample Rate valuse on Big and Small Cores at 90 000 and everything is still smooth, I am not gaming though. Huawei on Kirin960 uses Min Sample Rate at 80 000 stock...
Also I am turning on the Fast Ramp Down for Big Cores and Small Cores.
But my setting are more battery oriented and still I don't loose smoothness mate.
Tried the settings on my Mate 10. I see noticeable improvement on battery and performance. I haven't noticed any issue so far. Thanks for sharing.
This thread is underrated, therefore bump.
Tweaked my CPU settings a few days ago, and the difference in battery life is very noticeable, without any obvious loss of performance or fluidity.
Not gonna talk about numbers, because every single user has a different usage scenario, but if you are interested, I recommend you to at least try it, there's nothing to lose.
I can't understand why biggest OEM's won't put a bigger emphasis on optimizations of the existing, rather than on user unfriendly "innovations".
otonieru said:
I am using Hawktail profile from soniCron thread
Click to expand...
Click to collapse
Are you talking about Hawktail from here? https://androidfilehost.com/?w=files&flid=96527
Hawktail, Hawktail1.1 or Hawktail1.2 ?
badmania98 said:
Are you talking about Hawktail from here? https://androidfilehost.com/?w=files&flid=96527
Hawktail, Hawktail1.1 or Hawktail1.2 ?
Click to expand...
Click to collapse
I can say, none of it.
The base is hawktail indeed, but a mix of all those three + an adaptation to suit our 970 cpu better
You can go to sonicron thread to read more about each specific governor parameter and the hawktail profile itself
ytgbg said:
@otonieru
Isn't it Min Sample Rate value for Small Cores too extreme (30 000)?
On my Kirin960 I use Min Sample Rate valuse on Big and Small Cores at 90 000 and everything is still smooth, I am not gaming though. Huawei on Kirin960 uses Min Sample Rate at 80 000 stock...
Also I am turning on the Fast Ramp Down for Big Cores and Small Cores.
But my setting are more battery oriented and still I don't loose smoothness mate.
Click to expand...
Click to collapse
Well, it could be, but maybe not as well, LoL
I didnt really set those number to be a really battery oriented, as this phone already have huge battery to begin with, so even small improvement can do bigger impact.
i tried bigger number, but found it stutter a bit (at least to my liking) so, those are numbers that serve me best.
But of course everyone can re-tweak it to their liking
otonieru said:
I can say, none of it.
The base is hawktail indeed, but a mix of all those three + an adaptation to suit our 970 cpu better
You can go to sonicron thread to read more about each specific governor parameter and the hawktail profile itself
Click to expand...
Click to collapse
So, I have to download hawktail profile and modify it according to your values. Where do I copy the file and how I load it in Kernel Adiutor?
or
I have to modify the interactive governor with these values?
badmania98 said:
So, I have to download hawktail profile and modify it according to your values. Where do I copy the file and how I load it in Kernel Adiutor?
or
I have to modify the interactive governor with these values?
Click to expand...
Click to collapse
No no no, no need to download anything
You can simply input the governor value in the kernel adiutor. You need donate version btw.
On a new profile or over the interactive governor?
badmania98 said:
On a new profile or over the interactive governor?
Click to expand...
Click to collapse
Over the interactive,
Then you can save it as user custom profile
Done. Lets see the result.
applied it and now charging the phone. however one doubt tho. im using kernel adiutor as a user app and applied these settings. will these settings stay even if EMUI closes the kernel adiutor? (not talking about reboot since after reboot the profile needs to be applied again(?))
already selected kernel adiutor to run in background btw.
Saadkhalid786 said:
applied it and now charging the phone. however one doubt tho. im using kernel adiutor as a user app and applied these settings. will these settings stay even if EMUI closes the kernel adiutor? (not talking about reboot since after reboot the profile needs to be applied again(?))
already selected kernel adiutor to run in background btw.
Click to expand...
Click to collapse
It will stay until reboot even if you uninstall Kernel Adiutor. Just dont apply any setting that will affect CPU, like battery saver etc
It best to allow Kernel Adiutor to launch automatically, ignore batt optimisation and run in the background though.

			
				
otonieru said:
It will stay until reboot even if you uninstall Kernel Adiutor. Just dont apply any setting that will affect CPU, like battery saver etc
It best to allow Kernel Adiutor to launch automatically, ignore batt optimisation and run in the background though.
Click to expand...
Click to collapse
thanks. can i just turn power saver on from battery setting and then apply these values? just curious.

Categories

Resources