[KERNEL] 4.2.2 SaveEnergy K2_U/K2_UL - HTC One SV

Code:
#include
/*
* I am not responsible for bricked devices, dead SD cards, thermonuclear
* war, or the current economic crisis caused by you following these
* directions. YOU are choosing to make these modificiations, and
* if you point your finger at me for messing up your device, I will
* laugh at you.
*/
FEATURES:
Based on 3.11.401.x stock kernel sources
New governors (Ondemand + MULTIPHASE, Smartmax, Intellidemand)
New I/O Sheduller (Deadline, ROW, FIOPS, SIO)
Fsync and cache optimizations
new CPU frequency table
AVS
cortex-a15 optimizations
1.674GHz CPU Overclocking and 487.5MHz GPU Overclocking (optional, separate kernel)
USB force fast charging
S2W/DT2W support
and more...
SaveEnergy K2_U/K2_UL 4.2.2 kernel ver. 1
Project stopped. GitHub
SaveEnergy K2_UL 4.2.2 kernel ver. 2
Project stopped. Link to download in the second message.
SaveEnergy K2_U 4.2.2 kernel ver. 3
Based on 3.11.401.106 stock kernel sources.
Project stopped. Link to download in the second message.
Credits:
@faux123, @flar2, @rmbq, @show-p1984, @Zarboz, @jrior001, @thicklizard - For his various kernel patches and features.
Special thanks to @rmbq, without whose invaluable assistance the process of appearance S2W we would not come to pass for a long time.
And all others mentioned on my github in contributors tab.

ver. 2
Download:
Kernel v.30 (CPU - 1.188 GHz, GPU - 450 MHz)
Kernel v.30 (CPU - 1.458 GHz, GPU - 450 MHz)
Kernel v.30 (CPU - 1.674 GHz, GPU - 487.5 MHz)
Full changelog
GitHub
ver. 3
Download:
Kernel v.20 (CPU - 1.188 GHz, GPU - 450 MHz)
Kernel v.20 (CPU - 1.458 GHz, GPU - 450 MHz)
Kernel v.20 (CPU - 1.674 GHz, GPU - 487.5 MHz)
Full changelog
GitHub

From which kernel sources is compiled?
xpirt

BrateloSlava said:
[*]...
[*]and more...
Click to expand...
Click to collapse
Does it include duoble tap to wake and sweep to wake?
Sent from my C5303 using Tapatalk

xpirt said:
From which kernel sources is compiled?
Click to expand...
Click to collapse
I'm sorry, but I'm just do not remember which source files from HTCDEV.COM I took as a basis. K2_UL - that's for sure.

J.ali.li said:
Does it include duoble tap to wake and sweep to wake?
Click to expand...
Click to collapse
No.

BrateloSlava said:
I'm sorry, but I'm just do not remember which source files I took as a basis. K2_UL - that's for sure.
Click to expand...
Click to collapse
Ok. That's enough
xpirt

Hi, I have a suggestion. Would be great if you can mod cpu frequency table and add 2xx and/or 3xx speed, there is to big gap between 162 and 432MHz. 162MHz have big Impact on performance.

Hello, I flashed your kernel but if I try to change the frequencies of the CPU as soon as I close the program back to those first, any ideas? Also i have sod

bataya said:
Hi, I have a suggestion. Would be great if you can mod cpu frequency table and add 2xx and/or 3xx speed, there is to big gap between 162 and 432MHz. 162MHz have big Impact on performance.
Click to expand...
Click to collapse
I never aimed to produce highly productive kernel. I have always striven to save energy. I specifically did overclock separate, assembly to save the source code in the github repository. To everyone could take advantage of this. I do not plan to release further overclocked kernel version.
Near710 said:
Hello, I flashed your kernel but if I try to change the frequencies of the CPU as soon as I close the program back to those first, any ideas? Also i have sod
Click to expand...
Click to collapse
I use the program TricksterMOD. It perfectly sets all the necessary parameters when starting the phone.

Link to a new version (v010) - the second message. Github will update tomorrow.

Ok, thanks a lot, any suggestions on which governor to use?

Near710 said:
Ok, thanks a lot, any suggestions on which governor to use?
Click to expand...
Click to collapse
Smartmax - for better energy saving. Ondemand - for better performance.
ADD.
If you view the my file version-2.txt - you can see that I experimented with other governor (badass, intellidemand, interactive, interactivex2, lagfree, lionheart). However, I have not noticed any particular advantages.
I also experimented with replacing mpdecision to auto_hotplug.

BrateloSlava said:
I never aimed to produce highly productive kernel. I have always striven to save energy. I specifically did overclock separate, assembly to save the source code in the github repository. To everyone could take advantage of this. I do not plan to release further overclocked kernel version.
Click to expand...
Click to collapse
You misunderstood me. I want to say that 1xx MHz is very low speed, and it is OK for low cpu task. But if you play music, or running some other task in background cpu will run on next higher speed 4xx MHz, because 1xx MHz is not enough for such task so it will use more power than if it is run on 2xx or 3xx. So if the is some cpu speed between 1xx and 4xx MHz cpu should use less power.

bataya said:
You misunderstood me. I want to say that 1xx MHz is very low speed, and it is OK for low cpu task. But if you play music, or running some other task in background cpu will run on next higher speed 4xx MHz, because 1xx MHz is not enough for such task so it will use more power than if it is run on 2xx or 3xx. So if the is some cpu speed between 1xx and 4xx MHz cpu should use less power.
Click to expand...
Click to collapse
Yeah, maybe you're right. I will try to add "a couple" of frequencies in the coming days. Although I doubt that when playing music, processor speed will be lower than 432.

bataya said:
... But if you play music, or running some other task in background cpu will run on next higher speed 4xx MHz, because 1xx MHz is not enough for such task so it will use more power than if it is run on 2xx or 3xx. So if the is some cpu speed between 1xx and 4xx MHz cpu should use less power.
Click to expand...
Click to collapse
Link to a new version (v011) - the second message.
If you are not hard - please, collect usage statistics processor frequencies when listening to music, etc.
Thanx in advance.

^Is cpu states log from BetterBatteryStates ok, or you want log from some other app?

bataya said:
^Is cpu states log from BetterBatteryStates ok, or you want log from some other app?
Click to expand...
Click to collapse
Charge the phone. Reboot. Use the usual way (listen to music, make calls, etc.). At the end of the day - to see the statistics for frequency processor. Any program, that is able to display. I'm interested to see duration of use of each frequency.

Oki, I will post cpu states at the end of the day.

BrateloSlava said:
Link to a new version (v011) - the second message.
If you are not hard - please, collect usage statistics processor frequencies when listening to music, etc.
Thanx in advance.
Click to expand...
Click to collapse
Listening to music with Spotify over WiFi CPU mostly stay on the 384MHz.
Sent from my HTC One SV using Tapatalk

Related

[DEV ONLY] i9003 overclock module [need help from devs]

hello guys so i was looking at this project for Motorola Droid X:
http://code.google.com/p/milestone-overclock/
since Droid X has similar OMAP3630 chipset i thought we could try it out for this device...
if it has already been tried out by u guys then sorry for dupe post
anyways the sources available (milestone-overclock-module-1.4.8.tar.gz) were not directly compatible with the i9003 kernel sources (GB_CHN_UPDATE1) so i have modified it slightly.... and now the module gets compiled and it gets loaded (by insmod)... the sysfs and proc interface is active... even the app (MilestoneOverclock148.apk) detects the module correctly... but the changes dont work...
i invite all devs to help out with this...
modified sources are posted here:
https://github.com/DooMLoRD/i9003-overclock
noobs kindly dont spam this thread....
P.S.: Droid X has got overclock upto 1.4GHz with help of this so i am sure we can try little more overclock than 1.1GHz
If you look at the Samsung code in arch/arm/mach-omap2 and /plat-omap, and compare it with code seen for example in the nook color sources (OMAP 3630, see here), there are HUGE differences.
Normally the opp frequency table seems to be hard coded and easy to edit. Samsung on the other hand decided to dynamically assemble it in board-latona.c with info from cpufreq34xx.c (if I overlook that correctly). These differences could be the reason the module does not work.
Further, the line Amit and you changed in clock.c could - but I am not quite sure - actually lead to 10% higher clocks on every opp step. Because what you changed
Code:
- mpurate *= 1000000;
+ mpurate *= 1100000;
is a conversion factor from MHz to Hz. The line
Code:
if (mpurate < 1000)
above seems to be a logical check if the desired clock has been given in Hz or MHz, which is expected to be at max 800 for the 3630. For our 3640 the highest frequency is 1000, which would require the check to be
Code:
if (mpurate < 1001)
or similar, but they might have overlooked this change. If the input is below this boundary, it is thought to be in MHz, and is converted to match the internal logic which works with Hz only.
And two more questions: I experimented a lot with the OC code, and even added two new opps (1100/840 and 1200/865) to my tables. I could select them, and everything including cpufreq scaling tables was correct, but the CPU never was actually clocked above 1000MHz. Do you know why? And did you check if it is with your kernel (compare benchmark values, do not trust any other source, they all lie )?
previously i was also having milestone A853 and by the overclock module it can be overclocked to 1.2 ghz
XDA_Bam said:
If you look at the Samsung code in arch/arm/mach-omap2 and /plat-omap, and compare it with code seen for example in the nook color sources (OMAP 3630, see here), there are HUGE differences.
Normally the opp frequency table seems to be hard coded and easy to edit. Samsung on the other hand decided to dynamically assemble it in board-latona.c with info from cpufreq34xx.c (if I overlook that correctly). These differences could be the reason the module does not work.
Further, the line Amit and you changed in clock.c could - but I am not quite sure - actually lead to 10% higher clocks on every opp step. Because what you changed
Code:
- mpurate *= 1000000;
+ mpurate *= 1100000;
is a conversion factor from MHz to Hz. The line
Code:
if (mpurate < 1000)
above seems to be a logical check if the desired clock has been given in Hz or MHz, which is expected to be at max 800 for the 3630. For our 3640 the highest frequency is 1000, which would require the check to be
Code:
if (mpurate < 1001)
or similar, but they might have overlooked this change. If the input is below this boundary, it is thought to be in MHz, and is converted to match the internal logic which works with Hz only.
And two more questions: I experimented a lot with the OC code, and even added two new opps (1100/840 and 1200/865) to my tables. I could select them, and everything including cpufreq scaling tables was correct, but the CPU never was actually clocked above 1000MHz. Do you know why? And did you check if it is with your kernel (compare benchmark values, do not trust any other source, they all lie )?
Click to expand...
Click to collapse
Yes I know the changes in diff omap kernel sources... Spent a few hrs today comparing milestone/droid x and i9003 kernel sources to get this module complied and loading...
I am sure that the change done by amit is correct, because there is a very prominent change in linpack scores ~18 compared to ~16 which is typical of a 10% overclock...
As for ur other two questions I posted this earlier in the other thread
DooMLoRD said:
Not sure... These omap chips seem to have only 4 bins (300/600/800/1000)... We are currently making the 1000 MHz bin run at 1100mhz... I am not sure if we can add extra bins... I tried adding a lower 125MHz bin, it was shown by setcpu but the device never really went below 300mhz... May be we need to investigate it further...
Sent from my R800i using XDA App
Click to expand...
Click to collapse
P.S.: the chip on this phone is OMAP3630
Sent from my R800i using XDA App
DooMLoRD said:
I am sure that the change done by amit is correct, because there is a very prominent change in linpack scores ~18 compared to ~16 which is typical of a 10% overclock...
Click to expand...
Click to collapse
OK, so the overclock is working. Nice Concerning the mpurate, have a look here. The author is working at TI, so I expect him to be familiar with the code. However, that does not mean we can't use the conversion factor for overclock. It's just not "clean".
DooMLoRD said:
P.S.: the chip on this phone is OMAP3630
Click to expand...
Click to collapse
Yep, you're right. Got that wrong
---------- Post added at 10:50 PM ---------- Previous post was at 10:41 PM ----------
And another idea: For the Nook Color, there is a guy who implemented an interface and an app to change the clocks. It is different from droid-overclock, because he implemented a sysfs interface in the kernel sources. Hope this helps.
http://code.google.com/p/milestone-overclock/
sorry its of no use as yr already checked it out
XDA_Bam said:
And another idea: For the Nook Color, there is a guy who implemented an interface and an app to change the clocks. It is different from droid-overclock, because he implemented a sysfs interface in the kernel sources. Hope this helps.
Click to expand...
Click to collapse
That looks very much like the sysfs interface we added for VDD control on QSD8250/MSM7X30... Should work I think...
Sent from my R800i using XDA App
akashsgpgi said:
http://code.google.com/p/milestone-overclock/
sorry its of no use as yr already checked it out
Click to expand...
Click to collapse
U should be BANNED for spamming.... The link u posted is already there in the second line of the main post...
READ!!!!
Sent from my R800i using XDA App
I made progress with the sysfs interface seen on the Nook. Kernel boots, and the correct rates are displayed under /sys/power/mpu_freq_oppX. I was also able to set the hightest opp to 800 MHz, so that the two highest were both at the same frequency. The setting worked (confirmed with Linpack). But 1100 MHz was ignored (stayed at 1000). Looking into this further.
XDA_Bam said:
I made progress with the sysfs interface seen on the Nook. Kernel boots, and the correct rates are displayed under /sys/power/mpu_freq_oppX. I was also able to set the hightest opp to 800 MHz, so that the two highest were both at the same frequency. The setting worked (confirmed with Linpack). But 1100 MHz was ignored (stayed at 1000). Looking into this further.
Click to expand...
Click to collapse
so wht cpu freq table are u using exactly?
wht i think is we should concentrate on this (atleast for now):
just keep the 4 bins as is (300, 600, 800, 1000)
then try n get the access to these via sysfs (or proc)
see if we can modify them via that interface, say change 1000 to 1100 or change 800 to 900
and then do tests if these work...
if possible make a sysfs (or proc) interface for VDD (voltage control) too...
have u pushed the testing changes... i am working on same thing here... might help to speed things up...
I am currently testing on the master branch, so the branch is "wrong", but this is the commit:
Sysfs interface
Because only underclock works as of now, I am tested setting
Code:
if (mpurate < 2000)
but that didn't help. Now I will define 1100 and 1200 MHz steps in board-latona.c and cpufreq34xx.c to see if this helps.
EDIT: Nope, that didn't solve it. CPU does not run at 1100. Not even 900. Stays at 1000 in both cases. 800 can be forced...
some updates on the overclock module:
we need to search in /proc/kallsyms for:
clk_init_cpufreq_table
cpufreq_stats_update
on our kernel (uc-kernel v04) they are at:
Code:
c005a198 T clk_init_cpufreq_table
c03c5aec t cpufreq_stats_update
these may be different on stock kernel we need to use specific address
I just thought this might be helpful since Optimus black has the same hardware.
joelmonty said:
I just thought this might be helpful since Optimus black has the same hardware.
Click to expand...
Click to collapse
its the same module dude...
these are all based on milestone-overclock module
DooMLoRD said:
some updates on the overclock module:
we need to search in /proc/kallsyms for:
clk_init_cpufreq_table
cpufreq_stats_update
on our kernel (uc-kernel v04) they are at:
Code:
c005a198 T clk_init_cpufreq_table
c03c5aec t cpufreq_stats_update
these may be different on stock kernel we need to use specific address
Click to expand...
Click to collapse
Why these two? Cpufreq seems to be quite happy with the frequency tables. All frequencies are correctly listed, and the highest available for hardware and scaling are correct (say 1100, if I set it). But some "mysterious barrier" doesn't let the cpu clock as high as requested by cpufreq.
XDA_Bam said:
Why these two? Cpufreq seems to be quite happy with the frequency tables. All frequencies are correctly listed, and the highest available for hardware and scaling are correct (say 1100, if I set it). But some "mysterious barrier" doesn't let the cpu clock as high as requested by cpufreq.
Click to expand...
Click to collapse
read the sources of the module it explains why we need to look at those values...
DooMLoRD said:
read the sources of the module it explains why we need to look at those values...
Click to expand...
Click to collapse
Looked into it, and got the module to load and change frequencies by manually setting omap2_clk_init_cpufreq_table_addr=0xXXXXXX. I was able to underclock to 800 and back to 1000 MHz. 1200 was set, but not correctly applied - the mpu was still running at 1000 MHz. Further on, it ****ed up the frequency table. Instead of [300,600,800,1000] it was [600, 600, 1000, 1000] after the test. Not good
XDA_Bam said:
Looked into it, and got the module to load and change frequencies by manually setting omap2_clk_init_cpufreq_table_addr=0xXXXXXX. I was able to underclock to 800 and back to 1000 MHz. 1200 was set, but not correctly applied - the mpu was still running at 1000 MHz. Further on, it ****ed up the frequency table. Instead of [300,600,800,1000] it was [600, 600, 1000, 1000] after the test. Not good
Click to expand...
Click to collapse
yups code needs some more patching but i am sure this is the way forward for stable overclock
I've got the basics working with a completely reworked sysfs interface (no module). See GitHub.
The idea is simple: At all times, there shall be no more than 4 OPPs enabled. For each overclock "wish", we disable the currently highest OPP, and enable the overclocked one. If this has no corresponding OPP yet, we create it.
The code works, and has the following problems / features:
Only the highest OPP can be set for now. Consequently, the overclock has to be higher than 800 MHz.
The voltage is not adjusted, yet. All overclock frequencies are run with the 1 GHz stock voltage.
The cpufreq table, policy and stats are not updated, yet
The cpu does not go into deep sleep after the clocks have been adjusted (possibly because the cpufreq table is wrong)
As OPPs are added to the table if necessary, it is theoretically possible to max out the OPP array by defining new frequencies hundreds of times (depending on the maximum array size).
To set the frequency (in MHz), type
Code:
echo "1100" > /sys/power/overclock_max_freq
It would be really cool if you could take a look, DooMLoRD. The only real problem I see right now is the cpufreq table. If this would be correctly updated, the rest would be "easy" I tried some stuff (not in the commit), but nothing worked, yet.
XDA_Bam said:
I've got the basics working with a completely reworked sysfs interface (no module). See GitHub.
The idea is simple: At all times, there shall be no more than 4 OPPs enabled. For each overclock "wish", we disable the currently highest OPP, and enable the overclocked one. If this has no corresponding OPP yet, we create it.
The code works, and has the following problems / features:
Only the highest OPP can be set for now. Consequently, the overclock has to be higher than 800 MHz.
The voltage is not adjusted, yet. All overclock frequencies are run with the 1 GHz stock voltage.
The cpufreq table, policy and stats are not updated, yet
The cpu does not go into deep sleep after the clocks have been adjusted (possibly because the cpufreq table is wrong)
As OPPs are added to the table if necessary, it is theoretically possible to max out the OPP array by defining new frequencies hundreds of times (depending on the maximum array size).
To set the frequency (in MHz), type
Code:
echo "1100" > /sys/power/overclock_max_freq
It would be really cool if you could take a look, DooMLoRD. The only real problem I see right now is the cpufreq table. If this would be correctly updated, the rest would be "easy" I tried some stuff (not in the commit), but nothing worked, yet.
Click to expand...
Click to collapse
this is the same problem as with other overclocks i was playing with...
the cpufreq table doesnt get updated... only the module based way seems to change that table...
anyways we will have to investigate this further...
oh btw i have found patch to overclock GPU...
DooMLoRD said:
oh btw i have found patch to overclock GPU...
Click to expand...
Click to collapse
Nice. Hehe

[Kernel 3.0.30][RCMixSensationICS][Sense 3.6/4.0][OC 1.7][07JUN][5.6/5.5]

RC TEAM PRESENTS ​
HTC SENSATION ICS KERNEL
Come see ACS for Most recent updates
Feel free to use my kernel source without permission. Its open source so use it as you see fit. Enjoy.
{
"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"
}
FEATURES
CIFS
NLS
TUN
TMOBILE WIFI CALLING (Module supported)
OC 1.75ghz if you want to go there. Use setcpu
set to 1.5ghz by default
UV
Better wifi signal now you can connect at a weaker signal -108dbm over stock -88dbm
lower wifi voltage
you can use your flashlight with the battery at 10% over stock 30%
SWAP
ZRAM
Adjustable VDD table
5 I/O schedulers
[CFQ][NOOP][VR][DEADLINE][BFQ]
Perfect Sweep to unlock
Call Recording with app below
Click to expand...
Click to collapse
Click to expand...
Click to collapse
CPU FREQ TABLE​
192000
384000
432000
486000
540000
594000
648000
702000
756000
810000
864000
918000
972000
1026000
1080000
1134000
1188000
1242000
1296000
1350000
1404000
1458000
1512000
1566000
1620000
1674000
1728000​
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Downloads below
CURRENT:
RCMix Sensation 5.5
RCMix Sensation 5.6 (Not working - Compile problems - Don't use!)
PREVIOUS:
RCMIX 5.4
RCMIX 5.4 STOCK GPU
--------------------------------------------------------------------
CALL RECORD APP
--------------------------------------------------------------------
This Kernel features 5 I/O schedulers
To change them download No Frills or System Tuner from the market and and change at will.
To Manually adjust the VDD Table use system tuner from the market or other programs
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Change log
5.6
not working! wait the next build
updated s2w should fix lockscreen fixes
changed some drivers
5.5
updated to linux kernel version 3.0.30
updated sensation kernel updates
5.4
remaned rcmix smartdroid
updated linux kernel 3.0.28
updated sweep to wake (thanks showp1984)
lots of other tweaks. see git for full changelong
5.3
added sweep to unlock(showp1984)
fixed heptic feedback for sense 4(showp1984)
some ondemand tweaks
updated configs
V5.2
tweak ondemand gov
added compiler fixes
added new zip by showp
some other small code changes
V5.1
lowered flashlight usage to 5% battery power remaining
patched linux upstream to 3.0.26
added bfq IO scheduler
boosted banwith of the 2d and 3d gpu cores
changes to the OC
see git for all changes.
V5.0.1
set boot to 1512 forgot that one lol
v5
added adjustable VDD Table
added VR IO sched
UV more
multitouch tweaks
OC adjustments
see git for more
V4.3
OC to 1.72
set freq by default
set min freq to 192000
set max freq to 1.566
enabled more in configs
V4.2
tweaked OC
added muli touch tweak
updated configs
built cifs and nls into kernel
probably more
V4.1
built kernel with newest gcc compiler 4.5.2
updated htc battery core driver
OC GPU 2D core
OC GPU 3D core
updated htc sense 4 video driver
enabled zram and swap
V3
added linux kernel upstream .25
added lagfree gov
v2
added lots of wifi tweaks
added flashlight mods
added some other small tweak see git for full list.
v1
initial release
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Major Credit for this project are of klquicksall! Thanks for The Beer ​
CREDITS:
To see the credits and developers that are workin on this kernel see the GIT
HERE - Kernel Source
Definitions and Terms you need to know​
Linux Android Kernel
Android's kernel is based on the Linux kernel and has further architecture changes by Google outside the typical Linux kernel development cycle.[57] Android does not have a native X Window System nor does it support the full set of standard GNU libraries, and this makes it difficult to port existing Linux applications or libraries to Android.[58]
Certain features that Google contributed back to the Linux kernel, notably a power management feature called wakelocks, were rejected by mainline kernel developers, partly because kernel maintainers felt that Google did not show any intent to maintain their own code.[59][60][61] Even though Google announced in April 2010 that they would hire two employees to work with the Linux kernel community,[62] Greg Kroah-Hartman, the current Linux kernel maintainer for the -stable branch, said in December 2010 that he was concerned that Google was no longer trying to get their code changes included in mainstream Linux.[60] Some Google Android developers hinted that "the Android team was getting fed up with the process", because they were a small team and had more urgent work to do on Android.[63]
However, in September 2010, Linux kernel developer Rafael J. Wysocki added a patch that improved the mainline Linux wakeup events framework. He said that Android device drivers that use wakelocks can now be easily merged into mainline Linux, but that Android's opportunistic suspend features should not be included in the mainline kernel.[64][65] In 2011 Linus Torvalds said that "eventually Android and Linux would come back to a common kernel, but it will probably not be for four to five years".[66]
In December 2011, Greg Kroah-Hartman announced the start of the Android Mainlining Project, which aims to put some Android drivers, patches and features back into the Linux kernel, starting in Linux 3.3.[67] further integration being expected for Linux Kernel 3.4.[68]
​
CIFS
(Common Internet File System) The file sharing protocol used in Windows. It evolved out of the SMB (Server Message Block) protocol in DOS, which is why the terms CIFS/SMB and SMB/CIFS are commonly used. The word "Internet" in CIFS does not refer to the global Internet but to generic internetworking. The term was coined in the 1996 time frame when Microsoft submitted CIFS to the IETF and before the global Internet had become mainstream. See file sharing protocol, SMB and Samba.
NLS UTF-8
UTF-8 allows you to work in a standards-compliant and internationally accepted multilingual environment, with a comparatively low data redundancy. UTF-8 is the preferred way for transmitting non-ASCII characters over the Internet, through Email, IRC or almost any other medium. Despite this, many people regard UTF-8 in online communication as abusive. It is always best to be aware of the attitude towards UTF-8 in a specific channel, mailing list or Usenet group before using non-ASCII UTF-8.
TUN
This allows you to access an openVPN network using your android device.
Kineto gan
this driver allows you to let your android device make phone calls over VOIP network. (Tmobile currently uses this feature)
Kernel Governors​
Ondemand
This governor has a hair trigger for boosting clockspeed to the maximum speed set by the user. If the CPU load placed by the user abates, the OnDemand governor will slowly step back down through the kernel's frequency steppings until it settles at the lowest possible frequency, or the user executes another task to demand a ramp.
OnDemand has excellent interface fluidity because of its high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand is commonly chosen by smartphone manufacturers because it is well-tested, reliable, and virtually guarantees the smoothest possible performance for the phone. This is so because users are vastly more likely to ***** about performance than they are the few hours of extra battery life another governor could have granted them.
This final fact is important to know before you read about the Interactive governor: OnDemand scales its clockspeed in a work queue context. In other words, once the task that triggered the clockspeed ramp is finished, OnDemand will attempt to move the clockspeed back to minimum. If the user executes another task that triggers OnDemand's ramp, the clockspeed will bounce from minimum to maximum. This can happen especially frequently if the user is multi-tasking. This, too, has negative implications for battery life.
Performance Governor
This locks the phone's CPU at maximum frequency. While this may sound like an ugly idea, there is growing evidence to suggest that running a phone at its maximum frequency at all times will allow a faster race-to-idle. Race-to-idle is the process by which a phone completes a given task, such as syncing email, and returns the CPU to the extremely efficient low-power state. This still requires extensive testing, and a kernel that properly implements a given CPU's C-states (low power states).
Powersave Governor
The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.
Conservative Governor
This biases the phone to prefer the lowest possible clockspeed as often as possible. In other words, a larger and more persistent load must be placed on the CPU before the conservative governor will be prompted to raise the CPU clockspeed. Depending on how the developer has implemented this governor, and the minimum clockspeed chosen by the user, the conservative governor can introduce choppy performance. On the other hand, it can be good for battery life.
Userspace Governor
This governor, exceptionally rare for the world of mobile devices, allows any program executed by the user to set the CPU's operating frequency. This governor is more common amongst servers or desktop PCs where an application (like a power profile app) needs privileges to set the CPU clockspeed.
Interactive Governor
Much like the OnDemand governor, the Interactive governor dynamically scales CPU clockspeed in response to the workload placed on the CPU by the user. This is where the similarities end. Interactive is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.
Unlike OnDemand, which you'll recall scales clockspeed in the context of a work queue, Interactive scales the clockspeed over the course of a timer set arbitrarily by the kernel developer. In other words, if an application demands a ramp to maximum clockspeed (by placing 100% load on the CPU), a user can execute another task before the governor starts reducing CPU frequency. This can eliminate the frequency bouncing discussed in the OnDemand section. Because of this timer, Interactive is also better prepared to utilize intermediate clockspeeds that fall between the minimum and maximum CPU frequencies. This is another pro-battery life benefit of Interactive.
However, because Interactive is permitted to spend more time at maximum frequency than OnDemand (for device performance reasons), the battery-saving benefits discussed above are effectively negated. Long story short, Interactive offers better performance than OnDemand (some say the best performance of any governor) and negligibly different battery life.
Interactive also makes the assumption that a user turning the screen on will shortly be followed by the user interacting with some application on their device. Because of this, screen on triggers a ramp to maximum clockspeed, followed by the timer behavior described above.
Lagfree
Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.
IO Schedulers​
Input/output (I/O) scheduling is a term used to describe the method computer
operating systems decide the order that block I/O operations will be submitted
to storage volumes. I/O Scheduling is sometimes called 'disk scheduling'.
I/O schedulers can have many purposes depending on the goal of the I/O
scheduler, some common goals are:
- To minimize time wasted by hard disk seeks.
- To prioritize a certain processes' I/O requests.
- To give a share of the disk bandwidth to each running process.
- To guarantee that certain requests will be issued before a particular deadline.
NOOP
The NOOP scheduler inserts all incoming I/O requests into a simple, unordered
FIFO queue and implements request merging.
The scheduler assumes I/O performance optimization will be handled at some
other layer of the I/O hierarchy; e.g., at the block device; by an intelligent HBA
such as a Serial Attached SCSI (SAS) RAID controller or by an externally
attached controller such as a storage subsystem accessed through a switched
Storage Area Network).
NOOP scheduler is best used with solid state devices such as flash memory
or in general with devices that do not depend on mechanical movement to
access data (meaning typical "hard disk" drive technology consisting of seek
time primarily, plus rotational latency). Such non-mechanical devices do not
require re-ordering of multiple I/O requests, a technique that groups together
I/O requests that are physically close together on the disk, thereby reducing
average seek time and the variability of I/O service time.
CFQ
CFQ, also known as "Completely Fair Queuing", is an I/O scheduler for the
Linux kernel which was written in 2003 by Jens Axboe.
CFQ works by placing synchronous requests submitted by processes into
a number of per-process queues and then allocating timeslices for each of the
queues to access the disk. The length of the time slice and the number of
requests a queue is allowed to submit depends on the IO priority of the given
process. Asynchronous requests for all processes are batched together in fewer
queues, one per priority. While CFQ does not do explicit anticipatory IO
scheduling, it achieves the same effect of having good aggregate throughput for
the system as a whole, by allowing a process queue to idle at the end of
synchronous IO thereby "anticipating" further close IO from that process. It can
be considered a natural extension of granting IO time slices to a process.
DEADLINE
The goal of the Deadline scheduler is to attempt to guarantee a start service
time for a request. It does that by imposing a deadline on all I/O operations
to prevent starvation of requests. It also maintains two deadline queues, in
addition to the sorted queues (both read and write). Deadline queues are basically
sorted by their deadline (the expiration time), while the sorted queues are sorted
by the sector number.
Before serving the next request, the Deadline scheduler decides which queue to
use. Read queues are given a higher priority, because processes usually block
on read operations. Next, the Deadline scheduler checks if the first request in the
deadline queue has expired. Otherwise, the scheduler serves a batch of requests
from the sorted queue. In both cases, the scheduler also serves a batch of requests
following the chosen request in the sorted queue.
VR
Unlike other schedulers, synchronous and asynchronous requests are not treated separately, instead a deadline is imposed for fairness. The next request to be served is based on it's distance from last request. May be best for benchmarking because at the peak of it's 'form' VR performs best. Performance fluctuation results in below-average performance at times. Least reliable/most unstable.
Old Rcmix Kernels for Download​
RCMIX SENSATION ICS V1
RCMIX SENSATION ICS V2
RCMIX SENSATION ICS V3
RCMIX SENSATION ICS V4.1
RCMIX SENSATION ICS V4.2
RCMIX SENSATION ICS 4.3
RCMIX SENSATION ICS 4.3 STOCK GPU
RCMIX SENSATION ICS 5.0.1
RCMIX SENSATION ICS 5.2
RCMIX SENSATION ICS 5.1
RCMIX SENSATION ICS 5.1 STOCK GPU
RCMIX SENSATION ICS 5.0.1 STOCK GPU
RCMIX SENSATION 5.3
RCMIX SENSATION 5.3 STOCK GPU
5.3 with sense 3.6 fixes in the zip
http://d-h.st/JYS
Nice..was looking for rcmix kernel.
Thank you
Edit. Moderator please delete this post for the OP
My apology
Sent from my HTC Sensation 4G using Tapatalk 2 Beta-2
epsix said:
Nice..was looking for rcmix kernel.
Thank you
Edit. Moderator please delete this post for the OP
My apology
Sent from my HTC Sensation 4G using Tapatalk 2 Beta-2
Click to expand...
Click to collapse
No need to delete. I only need the first 3 posts.
Thanks for the support.
nice work. looks good. will there be a version with no gpu oc? cpu we can control but gpu we cant. and mine tends to overheat with gpu oc kernels. also, what is the recommended cpu gov? thanks
walkinhotdog said:
nice work. looks good. will there be a version with no gpu oc? cpu we can control but gpu we cant. and mine tends to overheat with gpu oc kernels. also, what is the recommended cpu gov? thanks
Click to expand...
Click to collapse
That wouldn't be out of the question for a stock gpu. I use On demand. ICS On demand uses a two stage system to regulate the frequencies. It's not like the one stage gingerbread gov. So for I find On demand or the new ICS interactive gov to be the best. The ICS Interactive gov seems to be much better.
woah, recently there are so many wonderful kernels...
Hi there, just try the v4.3 in baad's B12 ROM, but it's strange that I cannot access the file in SD card. No music and phot files can be accessed. But after I flash to other kernel, the files are back. FYI. Any idea ?
chihliouma said:
Hi there, just try the v4.3 in baad's B12 ROM, but it's strange that I cannot access the file in SD card. No music and phot files can be accessed. But after I flash to other kernel, the files are back. FYI. Any idea ?
Click to expand...
Click to collapse
Weird I can access all my music and sdcard just fine. What app are you using to access your ad card.
Sent from my HTC Sensation Z710e using xda premium
chihliouma said:
Hi there, just try the v4.3 in baad's B12 ROM, but it's strange that I cannot access the file in SD card. No music and phot files can be accessed. But after I flash to other kernel, the files are back. FYI. Any idea ?
Click to expand...
Click to collapse
Works fine for me here, using root explorer to check. What app are you using?
Sent from my HTC Sensation Z710e using xda premium
Ishouldntbehere: testing your kernel for T-Mobile WiFi calling will let you know how stable WiFi calling is
Sent from my HTC Sensation Z710e using xda premium
do u even have klquicksall's permission to post this here?
Video???
Sorry to say but i am still experiencing lag after video
Link down.
Please fix.
shiningarmor said:
do u even have klquicksall's permission to post this here?
Click to expand...
Click to collapse
Well were close so its not a problem.
Sent from my HTC Sensation Z710e using xda premium
shiningarmor said:
do u even have klquicksall's permission to post this here?
Click to expand...
Click to collapse
He is a part of out team so no worries so is klquicksall so all together
Sent from my HTC Sensation Z710e using xda premium
d3vilskid said:
Ishouldntbehere: testing your kernel for T-Mobile WiFi calling will let you know how stable WiFi calling is
Sent from my HTC Sensation Z710e using xda premium
Click to expand...
Click to collapse
Nice let me know how it goes
Sent from my HTC Sensation Z710e using xda premium
capychimp said:
He is a part of out team so no worries so is klquicksall so all together
Sent from my HTC Sensation Z710e using xda premium
Click to expand...
Click to collapse
Nice work with the kernel
my phone is back alive too, i'm so happy hehehe
now i need to flash some stuff to update my self was hard times without the phone, 4 weeks is a loooong time
laserman123 said:
Link down.
Please fix.
Click to expand...
Click to collapse
Should be fine now
Sent from my HTC Sensation Z710e using xda premium

Benchmarks, suggestions and researchs for kernel optimization

Benchmarks, suggestions and researchs for kernel optimization​
Hello guys,
these days I have done several comparative benchmarks of what can be achieved, at least in terms of performance, applying the existing optimization options or particular compiler flags and also the main kernel memory allocators.
This, I hope, is only the beginning...
I'd like that this thread could become a place where developers, experienced or not, can share their benchmark results, knowledge, suggestions on possible improvements, patches, etc designed to improve performance and / or stability of the kernel.
Inside the next posts, you can find the conducted benchmark results.
Thanks for your attention
PS. Sorry for my bad english...
Kernel Optimization Benchmarks​
These are the results of the comparative benchmarks of the performance results that can be achieved using the different kernel optimization options (-Os, -O2, -O3), using cpu and floating point tuning (eg -march=armv7-a -mtune=cortex-a8 -mfpu=neon) and other additional compilation flags.
For these tests I've used different kernels based on Arco's 3.0.60 kernel sources and built using the same toolchain (optimized for generic Cortex-A cpu):
- pure kernel built selecting -Os optimization
- pure kernel built selecting -O2 optimization
- slighty modified kernel built selecting -O3 optimization (only two simple changes to add -O3 optimization option inside Makefile and init/Kconfig)
- slighty modified kernel built selecting -O3 optimization and with the following additional compilation flags inside Makefile
Code:
...
OPTIMIZATION_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon \
-ffast-math -fsingle-precision-constant \
-fgcse-lm -fgcse-sm -fsched-spec-load -fforce-addr
CFLAGS_MODULE = $(OPTIMIZATION_FLAGS)
AFLAGS_MODULE = $(OPTIMIZATION_FLAGS)
LDFLAGS_MODULE =
CFLAGS_KERNEL = $(OPTIMIZATION_FLAGS)
AFLAGS_KERNEL = $(OPTIMIZATION_FLAGS)
...
and
Code:
...
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os
endif
ifdef CONFIG_CC_OPTIMIZE_DEFAULT
KBUILD_CFLAGS += -O2
endif
ifdef CONFIG_CC_OPTIMIZE_MORE
KBUILD_CFLAGS += -O3 -fmodulo-sched -fmodulo-sched-allow-regmoves -fno-tree-vectorize
endif
ifdef CONFIG_CC_OPTIMIZE_FAST
KBUILD_CFLAGS += -Ofast
endif
...
The kernel has not been overclocked, I used the default min and max cpu frequencies (245 Mhz - 1401 Mhz) with Performance cpu governor and Noop I/O scheduler.
To perform each kernel benchmark, I made at least 3 test runs for each of the following tools:
- CF-Bench developed by XDA Developer Chainfire
- Antutu Benchmark
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)​
You can find more detailed results (ods, xlsx and pdf format) and screenshots inside the following Media Fire folder: Results Folder​
Conclusion:
As you can see, if compared with each other, -O2 optimization and -O3 optimization with additional flags give the best results in terms of performance, expecially using CF-Bench, but the differences are relatively small.
Thus, we can conclude by saying that the optimization flags above, do not do miracles, at least in terms of performance...
Memory Allocators Benchmarks​
These are the results of the comparative benchmarks of the performance results that can be achieved selecting one of the different kernel memory allocators (SLUB, SLAB, SLOB and SLQB).
For these tests I've used different builds of the above descripted kernel (slighty modified kernel built selecting -O3 optimization and with the additional compilation flags):
- a build configured selecting the default SLUB memory allocator (the unqueued slab allocator V6)
- a build configured selecting the SLAB memory allocator (old and deprecated)
- a build configured selecting the SLOB memory allocator (a simpler memory allocator suitable for embedded devices with low memory)
- a build configured selecting the SLQB memory allocator (I modified the kernel sources to add it)
The kernel has not been overclocked, I used the default min and max cpu frequencies (245 Mhz - 1401 Mhz) with Performance cpu governor and Noop I/O scheduler.
To perform each kernel benchmark, I made at least 3 test runs for each of the following tools:
- CF-Bench developed by XDA Developer Chainfire
- Antutu Benchmark
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)​
You can find more detailed results (ods, xlsx and pdf format) and screenshots inside the following Media Fire folder:
Results Folder​
Conclusion:
In this case, if compared with each other, SLUB memory allocator (which is the default one) and SLQB memory allocator give the best results in terms of performance. The differences between these two are relatively small.
Patch:
If you want to add the SLQB memory allocator inside your JB kernel sources, you can use the following patch
SLQB_memory_allocator.patch​
After downloading it inside your kernel sources folder:
Code:
[COLOR="Navy"]Show the changes inside the patch[/COLOR]
[B]git apply --stat SLQB_memory_allocator.patch[/B]
[COLOR="Navy"]Check if the patch could cause conflicts or other problems[/COLOR]
[B]git apply --check SLQB_memory_allocator.patch[/B]
[COLOR="Navy"]If all is ok, apply the patch[/COLOR]
[B]git am --signoff SLQB_memory_allocator.patch[/B]
Additional IO Scheduler Benchmarks​
These are the results of the comparative benchmarks of the performance results that can be achieved selecting some of the additional IO scheduler we can find on many custom kernels.
I8150 - Samsung Galaxy W - ROW and SIO I/O schedulers comparison (Made by Hadidjapri)
These benchmarks have been made on I8150 by Hadidjapri.
For each I/O scheduler, he made 4 test runs using CF-Bench and setting the default min and max cpu frequencies (245 Mhz - 1024 Mhz) and the default SLUB memory allocator.
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)​
I9001 - Samsung Galaxy S Plus - ROW, SIO and V(R) I/O schedulers comparison
For each I/O scheduler, I made 4 test runs using CF-Bench and setting Performance cpu governor with the default min and max cpu frequencies (245 Mhz - 1401 Mhz) and the default SLUB memory allocator.
Benchmark final results
(the images are uploaded on Media Fire, if you can't see them, could be due to your proxy configuration)​
You can find more detailed results (ods, png and pdf format) inside the following Media Fire folder:
Results Folder​
Conclusion:
For both devices, the best scheduler for I/O operations is SIO.
AW: Benchmarks, suggestions and researchs for kernel optimization
This is huge! Thank you so much!!
Sent from my GT-I9001 using xda app-developers app
WOW. This is extremely interesting! Thank you very much! These are awesome spreadsheets!
I'm going to publish these on my blog if it's okay with you. if it's not, Ill add the link of this XDA topic in Android Articles.
AWESOME. PERIOD
(I always secretly wanted to make spreadsheets like these regarding optimization, but I didn't knew how :silly
from what i see in the O3 optimization, i guess the additional build flags is a must otherwise it's only a fancy stuff which doesn't give anything
i have 2 questions regarding the benchmark
1. which one is more reliable, CF or antutu?
2. do you get large variance when testing for database IO? or is this happens only to me
broodplank1337 said:
WOW. This is extremely interesting! Thank you very much! These are awesome spreadsheets!
I'm going to publish these on my blog if it's okay with you. if it's not, Ill add the link of this XDA topic in Android Articles.
AWESOME. PERIOD
(I always secretly wanted to make spreadsheets like these regarding optimization, but I didn't knew how :silly
Click to expand...
Click to collapse
I'll be really happy if you publish these results inside your blog.
You can also use those spreadsheet as template, you're welcome!
Thank you!
hadidjapri said:
from what i see in the O3 optimization, i guess the additional build flags is a must otherwise it's only a fancy stuff which doesn't give anything
i have 2 questions regarding the benchmark
1. which one is more reliable, CF or antutu?
2. do you get large variance when testing for database IO? or is this happens only to me
Click to expand...
Click to collapse
I can say that no benchmarking tool is really reliable, I've tried many and I think it isn't actually possible to create or find a tool that always gives similar results on a system that still performs other operations without our control on them...
Antutu Benchmark is the benchmark tool every one of us know and use most, could not miss, though it is not the best in terms of reliability of the results. In particular, the first test should always be discarded because it is very different from the next, so each time I run 4/5 test and considered only the last 3 similar. In addition, I confirm that the database test and SD card tests often vary greatly.
CF-Bench is certainly more reliable and allowed me to make the detailed tests on memory allocation, but doesn't perform benchmarks on database and on the 2d and 3d graphics.
Even as a non-dev its intersting. Nice work
Nice job. Even though i dont own this phone anymore but im still interested of benchmarks. Saw one in antutu and the highest for your phones is about 7000+. The guy (I forgot who) said that he edited something in the build.prop to achieve that high score. Only thing I remember is that he posted the line in the q&a thread.
Juhan Jufri said:
Nice job. Even though i dont own this phone anymore but im still interested of benchmarks. Saw one in antutu and the highest for your phones is about 7000+. The guy (I forgot who) said that he edited something in the build.prop to achieve that high score. Only thing I remember is that he posted the line in the q&a thread.
Click to expand...
Click to collapse
debug.gr.swapinterval=0
which disables the 2d FPS cap, it preforms well on benchmark but sucks in reality, overheating your gpu for nothing, and all animations are bugged
Christopher, where did you get the custom Linaro toolchain optimized for Cortex-A?
R: Benchmarks, suggestions and researchs for kernel optimization
android1234567 said:
Christopher, where did you get the custom Linaro toolchain optimized for Cortex-A?
Click to expand...
Click to collapse
I've built myself, take a look here:
http://forum.xda-developers.com/showthread.php?t=2098133
Sent from my GT-I9001 using xda premium
i would like to benchmark ROW and SIO scheduler.
using CF Bench is enough right?
R: Benchmarks, suggestions and researchs for kernel optimization
hadidjapri said:
i would like to benchmark ROW and SIO scheduler.
using CF Bench is enough right?
Click to expand...
Click to collapse
Yes, you don't need to test 2d and 3d graphics, the results shouldn't change. So CF Bench is enough. Let me know your results, if you want...
Sent from my GT-I9001 using xda premium
Christopher83 said:
Yes, you don't need to test 2d and 3d graphics, the results shouldn't change. So CF Bench is enough. Let me know your results, if you want...
Sent from my GT-I9001 using xda premium
Click to expand...
Click to collapse
okay, i'll test it after i finish my class today. maybe 3-4hours later
hmm here's what i got
benchmark procedure and static variable used
1. test run at 1024MHz
2. both scheduler are tested for 4 times/batch
3. test is using CF Bench tool
4. memory allocator used is SLUB
link to pastebin
http://pastebin.com/SPrv1HVG
hadidjapri said:
hmm here's what i got
benchmark procedure and static variable used
1. test run at 1024MHz
2. both scheduler are tested for 4 times/batch
3. test is using CF Bench tool
4. memory allocator used is SLUB
link to pastebin
http://pastebin.com/SPrv1HVG
Click to expand...
Click to collapse
Thank you very much Hadidjapri!
I'm adding your benchmark results inside the first page...
Then I'll add my benchmark results too...
Christopher83 said:
Thank you very much Hadidjapri!
I'm adding your benchmark results inside the first page...
Then I'll add my benchmark results too...
Click to expand...
Click to collapse
Ok, first part completed.
Now, I'll collect my results and prepare the spreadsheet...
Christopher83 said:
Ok, first part completed.
Now, I'll collect my results and prepare the spreadsheet...
Click to expand...
Click to collapse
you mistype the clock sir. it's 245-1024 not 1401
Sent from my GT-I8150

Undervolt settings

Hello, I'm new on this forum then I'm sorry if i post in a bad section for my questions... But I think I should post here.
I've got several questions:
- Is there really no risk about undervolting CPU, I asked me about this because no one forum tell risk but compagny thaty produces phones don't set the minimal voltage required for each frequencies.
- Is there an app to force CPU usage at 100% to test undervolt options.
Example: I undervolt 2265MHz with -50mV, I launch app, click on 100% uage then it use at 100% my CPU, if it crash undervolt is to high. If it don't crash undervolt is good, maybe continue tu undervolt.
- Is there an automatic app to undervolt ?
Example: It decrease 1mV by 1mV with always the same frequencie of CPU and 100% CPU usage then when phone crash it restore the last value of voltage, then it do it with another frequency etc etc ...
- Which voltage do you use ? And are there voltages the same for all nexus 5 or they will change depending of each processor.
To give me an opinion about what to use
- If I found a minimum voltage, will it be the same for all kernel ?
Example: I'm on Kernel A, my min for 300MHz is 725mV, I switch to kernel B, Will it work with 725mV for 300MHz??
More generally it depend only of the processor or also of the kernel, governor, I/O scheduler ??
I Think it's all maybe other questions will come
I Thank you for all your constructive response. Don't hesitate to ask me to develop certain question and tell me mistakes .
Theres an undervolting thread. Should be linked in the "Sticky roll-up thread" which you can get to via my signature
Okay, thank you
Okay, I will copy/paste my message
Thak you for the information.

[EOL][KERNEL][Snapdragon][ZyC Clang 17][GCC 13.0.1][Perf based kernel] klimbokernel

Code:
#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM/Kernel
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/
introduction:
welcome to my kernel, here i provide you with unique stuff related to stability and performance like none seen in other kernels. my kernel brings new features never seen in any other kernel for s20fe, stability and performance is my motto
Instructions:
Assuming you have a custom recovery installed, simply download and flash the kernel zip. This kernel uses Anykernel 3 so no need to reflash magisk(if you use magisk) after installing it.
compiled with lasted ZyC clang 17
and beta build with GCC 13.0.1
S20 FE Modding group: https://t.me/S20FeModding
kernel group: https://t.me/klimbokernel
works on both models : G780G/G781B ONLY!!
kernel source
Downloads:
Google Drive
do you want to learn how to compile my kernel? look at my thread : https://forum.xda-developers.com/t/...el-for-s20-fe-snapdragon-may-28-2022.4451267/​
Changelog:
Klimbobuzz v2.7 changes :
compiler :
*compiled with latest clang 17.0.0
and beta build with GCC 13.0.1 klimbo is the first to relase with this gcc (you can find it in download at beta build folder)
*some compiler tweaks for more performance
*kernel renamed to KlimboBuzz
•GPU:
*OC UP TO 935MHz SUPER STABLE
*Optimized all GPU voltages. using only those that are most efficient at the temperature in general
*Adreno boost enable by default:
•CPU SCHEDULERS:
•Ondemand (default) tuned for more performance and less temperature
*fully removed schedutil (I think anyone using klimbo is looking for performance not a balanced kernel)
•CPU:
*Tuned cpu cores for more performance instead of battery savings
*A few more minimal optimizations that help sustain performance
*Change default thermal GOV to USER_SPACE (USER_SPACE Is a good thermal menager Because it reduces the throttling consequently benefiting for a considerable performance gain)
*Disable WQ Power efficient (WQ efficient is useless in a performance based kernel since when enabled It causes a loss of performance in Exchange for minimal battery
rest as in previous builds
Klimbokernel v5.0 features :
compiled with ZyC clang 16 (lasted)
-add and enable adreno boost
-added new I/O sched drivers like : ZEN, FIOPS, MAPLE, ANXIETY etc..
-more undervolt on GPU
-added and enabled new cpu governor : schedhorizon (the best for performance and battery)
-incrase armv8 timer 19.2MHz ~ 25.2Mhz
klimbokernel-v3.8.1 is up!
• re-added OC on gpu to 910MHz
• more optimizations in the audio driver.
• Several EAS commits for balancing power+efficiency
• Disabled Bootstats.
klimbokernel-v3.2 is up!
• FS and F2FS improvements.
• Reverted 250HZ base timer frequency (for more stability)
• Misc ARM performance and battery patches.
• Some I/O control tweaks.
..status for GSI : working
klimbokernel-v3-rc2 is up!
• Disabled Gentle Fair Sleepers
• Removed GPU OC - This is to test drive if performance takes a small hit but battery is gained. I have this as *temp change* consider it a 'test' phase so i will need your feedback on it to see whether if we keep it or not.
klimbokernel-v1.1-rc1 is up!
• reversed the cpu frequency table so the user can put the frequencies he wants.
• Implemented optimized PM QoS for UFS
• Built with cortex-a55 specific optimizations
• removed facebook process from 'kill-in-the-background' mod. This was affecting the user experience (for those that use Facebook a lot, like my wife lol)
• Disabled several not needed debug
• finetuned for SM8250 (Samsung) specific frequencies/values
• added: CIFS, NTFS and ISO9660 FS in-kernel Support
• Slimbus OC
• Several 'under the hood' improvements to task/memory management.
• set timer tick to 11000HZ this provides super low latency
klimbokernel-v1-rc2 is up!
•set timer tick to 9000 Hz for more performance..
• gpu overclock from 587MHz to 660MHz
• removed battery charging throtling
reserved.
reserved.
reserved.
reserved.
Very unstable but the speed is insane for me. The only version that work for me is the stable v1, without random resets. Great work.
impreza555 said:
Very unstable but the speed is insane for me. The only version that work for me is the stable v1, without random resets. Great work.
Click to expand...
Click to collapse
in the latest versions there is no reboot, on telegram you can find
important message, DON'T WASTE YOUR TIME COMPLAINING ABOUT LOW SOT​my kernel was designed for stable performance as you can see in the changes above​thanks​
.
Hello colleagues
does it work on one ui?
or only in GSI?
mezacorleehone said:
Hello colleagues
does it work on one ui?
or only in GSI?
Click to expand...
Click to collapse
hi, work on both
snapdragon teaks said:
hi, work on both
Click to expand...
Click to collapse
As soon as I entered the telegram group.
but i am seeing 2 variants
GCC and Clang.
what is the difference between one and the other?
thank you for your patience.
mezacorleehone said:
As soon as I entered the telegram group.
but i am seeing 2 variants
GCC and Clang.
what is the difference between one and the other?
thank you for your patience.
Click to expand...
Click to collapse
GCC is more optimized for battery, so the phone won't heat up as much, now Clang is more optimized for performance and the phone will heat up a little more but nothing crazy.
You're welcome.
snapdragon teaks said:
GCC is more optimized for battery, so the phone won't heat up as much, now Clang is more optimized for performance and the phone will heat up a little more but nothing crazy.
You're welcome.
Click to expand...
Click to collapse
I already approved the kernel.
currently try 3 different kernels(counting this one)
1.it allows me to modify and lower and raise the frequencies to my liking. no matter how you do it, the kernel respects it.
2.another kernel did not allow me to modify anything, I selected a frequency and it automatically modified itself. (I hate this kernel)
3.the kernel of this post.
is a combination of both:
I can modify only the maximum frequencies (I am not interested in moving the minimum ones, I have no problems with them)
I only have problems with the frequency of the GPU
It is activated at 932 mhz, it never goes above 490 mhz
no matter how much stress the team.
It is normal ?
mezacorleehone said:
I already approved the kernel.
currently try 3 different kernels(counting this one)
1.it allows me to modify and lower and raise the frequencies to my liking. no matter how you do it, the kernel respects it.
2.another kernel did not allow me to modify anything, I selected a frequency and it automatically modified itself. (I hate this kernel)
3.the kernel of this post.
is a combination of both:
I can modify only the maximum frequencies (I am not interested in moving the minimum ones, I have no problems with them)
I only have problems with the frequency of the GPU
It is activated at 932 mhz, it never goes above 490 mhz
no matter how much stress the team.
It is normal ?
Click to expand...
Click to collapse
About gpu
You should check if adreno boost is enabled by default, If yes, at which level, if at level 1 (Low) then this is the problem Because adreno boost locks Max frequency depending on its use and also the setting selected by the user
snapdragon teaks said:
Acerca de gpu
Debe verificar si adreno boost está habilitado de forma predeterminada. En caso afirmativo, en qué nivel, si está en el nivel 1 (bajo), entonces este es el problema. Porque adreno boost bloquea la frecuencia máxima según su uso y también la configuración seleccionada por el usuario.
Click to expand...
Click to collapse
Is rare.
send the screenshot.
I have to activate minimum frequency at 932 mhz.
I would like it to be scaled.
Try some bench apps like, 3dmark, Geekbench, Antutu, etc. Also Use the CPU float app you can find it in the playstore.. open CPU float and open bench apps start the test and check if the frequency goes up to 932MHz
snapdragon teaks said:
Try some bench apps like, 3dmark, Geekbench, Antutu, etc. Also Use the CPU float app you can find it in the playstore.. open CPU float and open bench apps start the test and check if the frequency goes up to 932MHz
Click to expand...
Click to collapse
use antutu.
the score was very low.
once I set the frequency to 932mhz as a minimum.
I was surprised.

Categories

Resources