Related
These kernels should work on every stock ICS LG rom or custom rom based on LG ICS rom.
Civato kernels build with V30B LG source & compiled on google 4.4.3 toolchain.
Thanks to :
WKPARK patchesRamHack and first OC patch
Also want to thank pengus77 , ezterry, godmachine81 , Thor2002ro, Faux123,chad0989 , Pidozz
NOTE:
I'm not a DEV and not pretending to be one, I'm a android enthusiast.
I would like to thank all XDA members that are helpful.
I build and mod stuff for my personal needs and then I share them.
Do I want something in return? NO.
You don't like it, no problem, there are enough good DEV's with there kernel to help you along.
So on request I started a separate thread for this kernel , it started with my rom and the need for a good custom kernel.
Click to expand...
Click to collapse
I don't provide any guarantee or a lawer if your phone explode and you get accused and charged for a terrorist act.
To be clear , the kernel got the POSSIBILITY to OC and tweak , if you don't do anything it runs at stock settings.
Meaning = MAX speed 1000MHz , Noop scheduler , interactive governor= LG default settings.
CivZ_SkyWalker_RF2.5rm
SU660 version of this kernel is available here
Sithlord in 3 different versions.
Ramhack or no ramhack
usb FastCharge
Compiled with Optimized flags-O3/-O2
-OC up to 1.5GHz , UV/OV , default boot up speed is 1.0GHz
-Minimum UV 650mV , Maximum OV 1400mV
Best CPU control app when you want to UV is free for XDA members SETCPU , download 2.24 or buy it, SUPPORT the devs! (it allows you to type in voltage changes and not only slide), Remember only steps of 10mV are real values , if you apply a step of 25mV it will actually be 20mV. So use setcpu to type in voltage steps of 10mV , 20mV , 30mV, ...............
-GPU 3D & 2D ( scales from 300 - 425MHz)
(stock is 300)
-Terminal kernel control commands
(Led light , FSYNC control , ZRam , Modules, SWAP increase)
-USB FastCharge (disabled at default)
-Available RamHack :No ramhack /24mb / 32mb
- Extra zRam 96Mb(disabled by default)
-Governors:
Powersaver
PERFORMANCE
USERSPACE
ONDEMAND
INTERACTIVE in dynamic mode (default)
CONSERVATIVE
LulzActive
(LulzActive tegrak tweak app included)
LionHeart
-Shedulers
NOOP(default)
DEADLINE
CFQ
SIO
ROW
BFQ-v5
Zen
VR
-Led control thanks to pengus77 (Max at default)
-Dynamic FSYNC @ Faux123 & Pengus77 (Disabled at default)
-Extra Modules loadable/unloadable on the fly
-Voltages / Frequencies:
NO 5mV steps as they are not supported by the LG regulator (Thanks Pengus77 for the heads-up)
750mV(216MHz) ; 780mV(312MHz) ; 800mV(456MHz) ; 850mV(608MHz) ; 900mV(760MHz); 920mV(816MHz) ; 950mV(912MHz) ; 1000mV(1000MHz boot up speed) ; 1050mV(1100MHz) 1100mV( 1200MHz); 1150mV(1300MHz); 1200mV(1408MHz) ; 1300mV(1504MHz)
Kernel control options to use with Terminal: (Settings are applied immediately and stick even after reboot now)
For a list of the commands on your phone (in case you forgot)
Type in terminal
su(enter)civz(enter)
Dynamic FSYNC control: (disabled by default)
Terminal command:
su (enter) df_on (enter) = This will enable Dynamic FSYNC (setting are applied immediately and sticks after reboot)
su (enter) df_off (enter) = This will disable Dynamic FSYNC (setting are applied immediately and sticks after reboot)
Led Brightness control: (Maximum brightness by default)
Terminal command:
su (enter) ledmin (enter) = This will set led at minimum brightness (setting are applied immediately and sticks after reboot)
su (enter) ledmed (enter) = This will set led at medium brightness (setting are applied immediately and sticks after reboot)
su (enter) ledmax (enter) = This will set led at maximum brightness (setting are applied immediately and sticks after reboot)
Load/unload Extra Modules : (Modules are unloaded by default)
(Cifs; hfs; hfs+; md4; nls_utf8; sha256; sha512)
Terminal command:
su (enter) m_load (enter) = This will load the extra modules (setting are applied immediately and sticks after reboot)
su (enter) m_unload (enter) = This will unload the extra modules (setting are applied immediately and sticks after reboot)
Enable/Disable EXTRA ZRam96MB: (Disabled by default)
Terminal command:
su (enter) zram_on (enter) = This will enable ZRam96MB (Reboot is needed to apply changes and sticks after reboot)
su (enter) zram_off (enter) = This will disable ZRam96MB (Reboot is needed to apply changes and sticks after reboot)
Enable/Disable LG 131MB SWAP or 260MB SWAP: (131MB is LG default)
Terminal command:
su (enter) lg_swap_of (enter) = This will disable LG swap (Reboot is needed to apply changes and sticks after reboot)
su (enter) lg_swap130_on (enter) = This will enable LG 130MB swap (Reboot is needed to apply changes and sticks after reboot)
su(enter)lg_swap260_on(enter) = This will enable LG 260MB swap (Reboot is needed to apply changes and sticks after reboot)
Note on LG swap: The 131Mb is default of LG
LG got this enabled in the stock LG rom and it uses the dev/block/mmcblk0p4 (unused partition) for it so not the same as ZRam that uses /dev/block/zram0 file. The LG Swap partition is enabled by default , I just add this command so if a user don't want to use the LG swap it can be done now with a single command.
Change system swappines value: (Android default is 60)
(setting are applied immediately and sticks after reboot)
Terminal command:
su(enter)swappines_0(enter) = set swappines at 0 = system waits very long to swap , Kills tasks very quick
su(enter)swappines_20(enter) = set swappines at 20 = Performance setting for gaming
su(enter)swappines_40(enter) = set swappines at 40 = Performance setting and some multitasking
su(enter)swappines_60(enter) = set swappines at 60 = Androids default , balanced setting
su(enter)swappines_80(enter) = set swappines at 80 = Aimed for multitasking/Balanced
su(enter)swappines_100(enter) = set swappines at 100 = Aimed for extreme multitasking , NOT GAMING
Update GPS lto
(this is done automatically with a init.d script , so in case it failed, here a way to do this manually)
Terminal command:
su (enter) gps_update (enter) = This will update gps lto file , if the file is not older then 5 days it won' t update.
Change system Fatsdormancy setting:
(setting are applied immediately and sticks after reboot)
Terminal command:
su(enter)fastdormancy_on(enter)=enable Fastdormancy = android default
su(enter)fastdormancy_off(enter)=disable Fastdormancy
Note about fastcharge option in kernel:
It is OFF at default, user needs to enable it.
Use at own risk, it is meant to use on car/plain chargers, don't know the effect in the long term.
And I don't know the effect when ussed on a PC usb connection.
The "FastCharge" app from playstore is installed in data, use it to toggle ON/OFF.
Or use the following terminal commands:
To enable it = echo 1 > /sys/kernel/fast_charge/force_fast_charge
To disable it= echo 0 > /sys/kernel/fast_charge/force_fast_charge
If you use fastcharge on a pc, usb will not be mounted and no data can be received or send.
Based on the work of chad0989 , Pidozz and Pengus77.
Click to expand...
Click to collapse
Click to expand...
Click to collapse
LG-P990-VERSIONS
CivZ_SkyWalker_RF2.5rm
CivZ_SkyWalker_RF2.5rm_24RH
CivZ_SkyWalker_RF2.5rm_32RH
SU660-VERSIONS of this kernel is available here
Side note on USB BSOD (screen off and pluging in usb resulting in BSOD)
I noticed that with enabled Dynamic FSYNC or a to high OC it can still occur.
So in that case please turn on screen before plugging in USB.
Click to expand...
Click to collapse
Changelog:
New in RF1.3-Cleaned out the kernel source
-Powersaver governor activated
-Optimized deadline scheduler
-Nvidia USB plugin BSOD fix
New in RF1.4:
-Added BFQ-v5r1 scheduler
@ iBluemind
(More info see Q&A)
-More versions.
New in RF1.5:
-Fix for governor switching
(coming from hotplug to a other governor made one core stuck in sleep state , resulting in bad performance and instability).
-3 New governors: "Aggressive" , "Gallimaufry", "Sakuractive".
-Most governors optimized.
(reverted BFQ to V5 version, performance is smoother I think)
-New "Zen" scheduler and most schedulers optimized
-Reduced android logger time.
-Increased readahead (1024kb instead of the default 128kb)
-Included mmc_cap hard brick fix. (Don't know if it is needed on this phone but can't hurt, a lot of samsung phones died this way when wiping data in recovery)
-Controle led brightness
ledmin ; ledmed; ledmax
NEW RF1.5_FC edition
Added USB Fast Charge in this edition.
8-Feb-2013:
RF1.6:
-Only compiled on -03 CF flags and with FastCharge option.
-GPU 3D clock up to 400MHz
(Before it was 350 where stock is 300)
-Patch for EXt4 error.
-CPU Freq lock off
-Reverted deadline scheduler
-Ramdisk got back the old settings for better battery life when not OC'd.
-216 and 312 MHz default voltage dropped with 25mV.
-Ramp-up speed on interactive back to 80 , you can change this in setcpu.
10-Feb-2013
RF1.7:
-Max CPU OC is now 1.5GHz
-New Lower default Voltage table:
750mV(216MHz) ; 775mV(312MHz) ; 800mV(456MHz) ; 850mV(608MHz) ; 900mV(760MHz); 925mV(816MHz) ; 950mV(912MHz) ; 975mV(1000MHz) ; 1050mV(1100MHz) 1125mV( 1200MHz) ; 1150mV( 1248MHz) ;1200mV(1300MHz) 1250mV(1352MHz) ; 1275mV(1404MHz) ; 1300mV( 1456MHz) ; 1325mV(1500MHz)
-Voltage settings changed in tegra2_dvfs.c so the 1.5GHz is stable.
-GPU 2D clock OC'd up to 400MHz
(stock is 300)
-Secondary clock epp & mpe OC'd to 350MHz
(stock is 300)
-ARCH power enabled
12-Feb-2013:
RF1.8 released
Update for stability reason that some users experienced.
Thanks to all the testers and there feedback.
-2D & 3D clock decreased back to 350MHz OC
(this is the RF1.4 setting as this is the best for all users)
Performance gain is not enough to justified to OC to 400MHz.
The 400MHz version will not be released public as it is not good for most users, please don't ask for it.
-Secondary mpe clock back to stock for the stability reason.
-RATE_LIMIT of 3D back to stock for the stability reason.
13-Feb-2013:
RF1.9
-Bug fix for Reboot /shutdown freeze when OC'd.
-Voltage table updated.
-Lower voltage for 1500 and 1456 MHz
Minimum UV voltage is now 675mV
-3D GPU 400MHz OC.
16-Feb-2013:
RX2.0
New Voltage table for higher stability.
New CPU max speed 1.544GHz.
New GPU 2D clock of 400MHz.
New terminal kernel commands.
Compiled with new flags (-O2 with some parts of -O3 flags to reduce code size).
Updated voltage table to gain stability when OC'd.
Dynamic FSYNC @ Faux123 integrated (Disabled at default)
Kernell-HZ increased to 256HZ (stock is 100) for better performance and smoothness.
User HZ increased to 200HZ (stock is 100) for smoothness
Support for NTFS
Support for NFS 3/4
HFS & HFS+ as modules
CIFS as module
md4 as module
sha512 as module
utf8 as module.
16-Feb-2013:
RX2.0_b released
Fix for the terminal commands error.
21-Feb-2013:
RX2.1 Released
Reverted User and Kenrel HZ to stock for stability.
Reverted back to -O3 custom flags
New terminal commands for ZRam and Extra modules
USB OTG (on the go) enabled (testing)
22-Feb-2013:
RX2.2 released:
Changed some custom flags for decrease of code size.
Reverted OTG setting (not working and causing problems)
Shed_Features back to stock setting (causing USB pluggin BSOD)
New Terminal command 'civz"
I hope this is a 100% rock solid stable version and I'm truly sorry for the many releases the last few days.
I wish to bring a stable kernel so some features are reverted as wow factor is not what I look for.01-Mar-2013:
CivZ_SithLord_再见 released
Main goal 100% stable kernel with good battery life, that is why the following changes are applied:
Forced governor linked patch (Make sure both cpu's run at the same governor, even with "setcpu & antutu") thanks Ezterry.
Max OC 1500MHz with lower voltage table (see in kernel info) , this to reduce battery consumption.
Removed a bunch of governors as they caused problems in some situations (so it seemed), see kernel ifo for what is included.
LulzActive Governor (with app) , tweaked by me to be less aggressive.
02-Mar-2013:
CivZ_SithLord_再见_r2 released
Reverted voltage table to RX2.2 release as some users had problems on max OC with lower rail voltages.
I can UV with -50mV on all frequencies but that is all up to the quality of your tegra2 cpu.07-Mar-2013:
CivZ_SkyWalker_RF1.0 released
New name because the OC code totaly changed compared to SithLord.
Totally new OC code with new frequencies and very low default voltages.(Thanks to my friend ezterry)
Max = Min frequency really fixed (now it won't be stuck at 750MHz when setting max frequency below 760MHz and not just showing the value but actually applying it so now you can set screen-off max at example: 312MHz in a profile with a cpu app).
Dynamic MODE enable on the interactive governor.
Min Max cpu frequency code changed and editable in defconfig before compiling kernel(Thanks to my friend ezterry)
Compiling optimizations flags changed (again thanks to my friend ezterry)
LulzActive governor balanced settings with max screen-off frequency of 608MHz
I would like to thank all the beta testers and I hope the result is up to your expectations!
08-Mar-2013:
CivZ_SkyWalker_RF1.1 released
More aggressive lulzactive governor settings on user request
New terminal command for LG 131MB swap
New terminal command for manual updating GPS lto file
Also a SU660 version available
96ZRam disabled by default from now on (not needed in my opinion, swap already got 131Mb on unused partition, but it is still available as a option)
10-Mar-2013:
CivZ_SkyWalker_RF1.2 released
New Max OC speed of 1544MHz
2D GPU back to 400MHz OC
OC code updated
New Terminal command to increase LG SWAP to 260MB
Updated FSYNC with latest Pengus77 release
Enabled ARCH-Power
SU660 24RH version available
"civz" terminal command updated with latest commands
13-Mar-2013:
CivZ_SkyWalker_RF2.0 released
Reverted MAX OC to 1504MHz (this way I could drop rail voltages so it will stay cooler, settings of RF1.0)
New Voltage table (no 5mV steps as pengus77 mentioned the regulator doesn't except 5mV steps)
Real min voltage is now 650mV (again thanks for pengus77 pointing me this out that board power and regulator had to be modded)Best CPU control app when you want to UV is free for XDA members SETCPU , download 2.24 or buy it, SUPPORT the devs! (it allows you to type in voltage changes and not only slide), Remember only steps of 10mV are real values , if you apply a step of 25mV it will actually be 20mV. So use setcpu to type in voltage steps of 10mV , 20mV , 30mV, ..
New Governor , LionHeart , tweaked by me to be very battery friendly.
GPU 2 D & 3D scales from 300 - 450MAX . What does this mean: When you play a stressfull game it will go up to Max 450MHz if it can depending on = It scales with voltage and process ID , lower voltage/ lower stress/ lower CPU speed = lower GPU speed. I hope this is the best solution for all users and best for battery/performance.
FastCharge updated to pengus77 edition.
Kernel Panic Timeout increased to 10 so a automatic reboot can be prevented when running out of memory on multitasking.
SU660 gets all versions.
FOR RF2.0 I would like to thank Pengus77 for his contribution on the voltage control and the updates of FSYNC and FastCharge.
I would also like to thank my good friend ezterry and godmachine81 for the OC code and GPU code.
Next I thank all my beta testers for the info and stressing there phone.
14-Mar-2013:
CivZ_SkyWalker_RF2.0-b released
New terminal commands to control the swappines
LG terminal command name change !!!
civz command updated
The rest of the kernel is 100% the same!
23-Mar-2013:
CivZ_SkyWalker_RF2.2-b released
New secondary , GPU frequency table.
3D Clock scales max to 425MHz.
2D clock scales up to 400MHz max (only when needed in heavy load)
USB connection delay patch
Fastdormancy terminal command
29-Mar-2013:
CivZ_SkyWalker_RF2.3rm released
gspca_main.ko module moved to optional modules
Stripped of all debugging = Lighter and optimized code
Fixed some code errors while compiling
06-Jul-2013:
CivZ_SkyWalker_RF2.5rm released
SetCPU 3.1.0 and higher reverted voltage fixed so on older versions of setCPU this kernel won't report correctly.
Note on LG SWAP increase:
Remember that on stock LG rom the default LG swap is 131MB. If you change kernel that doesn't got this terminal option and you changed the swap size or disabled it , no problem the swap commands are installed in system/bin so if you didn't delete them you can always use it. This does not count for other terminal command that come with the kernel.
Side note on USB BSOD
It is very random and still not 100% solved.
I noticed that with enabled Dynamic FSYNC or a to high OC it can still occur.
Just turn on your screen before connecting to pc and safe yourself a battery pull.
Click to expand...
Click to collapse
Side note:
Kernels comes as a boot.img = ramdisk with zImage.
Reason is that I made some changes in ramdisk. , init.d support.......
The meaning of this kernel is if you don't OC you get supurb battery life and 100% stability. If you start changing default governors and schedulers it will and can have a effect on battery life and OC to much with to much UV it will get unstable.
I recommend 1.2-1.3GHz for 24/7 use and not more. Governors can have a great effect on battery life. The flexibility in the kernel is there for the user to pick his/her favorite setting.
Source see second post!
More info about Sithlord and the effect of RamHack and Zram
INFO:
Thanks to jee'sgalaxy for the explanation
These Governors are included
1: OnDemand Governor:
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.
2: 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).
3: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.
The Conservative Governor is also frequently described as a "slow OnDemand," if that helps to give you a more complete picture of its functionality.
4: 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.
5: 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.
6: Powersave Governor:
The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.
7: LulzActive:
Highly tweakable governor @ tegrak, use the included app to tweak it.
Click to expand...
Click to collapse
Schedulers:
1: Noop:
Inserts all the incoming I/O requests to a First In First Out queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like our flash drives). Advantage here is that flash drives does not require reordering of multiple I/O requests unlike in normal hard drives.
Advantages:
Serves I/O requests with least number of cpu cycles. (Battery friendly?)
Best for flash drives since there is no seeking penalty.
Good throughput on db systems.
Disadvantages:
Reduction in number of cpu cycles used is proportional to drop in performance.
2: Deadline:
Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.
Advantages:
Nearly a real time scheduler.
Excels in reducing latency of any given single I/O.
Best scheduler for database access and queries.
Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.
Like noop, a good scheduler for solid state/flash drives.
Disadvantages:
When system is overloaded, set of processes that may miss deadline is largely unpredictable.
3: CFQ:
Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process. V2 of CFQ has some fixes which solves process' i/o starvation and some small backward seeks in the hope of improving responsiveness.
Advantages:
Considered to deliver a balanced i/o performance.
Easiest to tune.
Excels on multiprocessor systems.
Best database system performance after deadline.
Disadvantages:
Some users report media scanning takes longest to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.
5: SIO:
Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. Sio is a mix between noop & deadline. No reordering or sorting of requests.
Advantages:
Simple, so reliable.
Minimized starvation of requests.
Disadvantages:
Slow random-read speeds on flash drives, compared to other schedulers.
Sequential-read speeds on flash drives also not so good.
6: V(R):
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.
Advantages:
May be best for benchmarking because at the peak of it's 'form' VR performs best.
Disadvantages:
Performance fluctuation results in below-average performance at times.
Least reliable/most unstable.
7) BFQ:
Instead of time slices allocation by CFQ, BFQ assigns budgets. Disk is granted to an active process until it's budget (number of sectors) expires. BFQ assigns high budgets to non-read tasks. Budget assigned to a process varies over time as a function of it's behavior.
Advantages:
Believed to be very good for usb data transfer rate.
Believed to be the best scheduler for HD video recording and video streaming. (because of less jitter as compared to CFQ and others)
Considered an accurate i/o scheduler.
Achieves about 30% more throughput than CFQ on most workloads.
Disadvantages:
Not the best scheduler for benchmarking.
Higher budget assigned to a process can affect interactivity and increased latency.
Click to expand...
Click to collapse
Please share your settings, battery life, benchmark score.................................
My personal settings for a while now:
-SithLord_RF1.2_32RH_cf03
-1248MHz 24/7
-SavagedZen
-row
It is very snappy and battery friendly.
1248MHz SavagedZen / Row
{
"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"
}
1456MHz Performance / ROW
cannot be used on cm10 right?
Re: [KERNEL] CivZ SITHLORD Kernel - for LG ICS roms / New bootloader only
Where can I change CPU frequency?
Sent from my LG-P990 using xda app-developers app
Taking loads of kernel patches from other peoples Github and providing your kernel as a tarball is (most likely) fine by the rules, but still considered bad.
It doesn't take long to set up github, so I'd like to ask you kindly to give back to the community if you take from it.
Edit: Before anyone gets this the wrong way, read my clarification post below.
tonyp said:
Taking loads of kernel patches from other peoples Github and providing your kernel as a tarball is (most likely) fine by the rules, but still considered bad.
It doesn't take long to set up github, so I'd like to ask you kindly to give back to the community if you take from it. Especially as a Recognized Contributor.
Click to expand...
Click to collapse
Well i have to agree 100% with Tonyp on this one. Please setup a github and commit your work, keeping clear and polished references to the cherry-picks you make. GPL is quite clear on this: all modifications to the original source code must keep a reference to the author of the patch. Github is a fantastic way to keep in line with the gpl because it does it all by itself
Re: [KERNEL] CivZ SITHLORD Kernel - for LG ICS roms / New bootloader only
Thanks for doing this, and also making new tread for it. As an experienced noob I appreciate it.
Tony, you might be right, but rules are rules, and users love rules like this. Why? We're addicts of flashing he he......
Sent from my LT18i using xda premium
No.
---------- Post added at 11:20 PM ---------- Previous post was at 11:16 PM ----------
proyatzu said:
cannot be used on cm10 right?
Click to expand...
Click to collapse
No.
Re: [KERNEL] CivZ SITHLORD Kernel - for LG ICS roms / New bootloader only
louiscypherbr, you type from my mind
tonyp said:
Taking loads of kernel patches from other peoples Github and providing your kernel as a tarball is (most likely) fine by the rules, but still considered bad.
It doesn't take long to set up github, so I'd like to ask you kindly to give back to the community if you take from it. Especially as a Recognized Contributor.
Click to expand...
Click to collapse
pengus77 said:
Well i have to agree 100% with Tonyp on this one. Please setup a github and commit your work, keeping clear and polished references to the cherry-picks you make. GPL is quite clear on this: all modifications to the original source code must keep a reference to the author of the patch. Github is a fantastic way to keep in line with the gpl because it does it all by itself
Click to expand...
Click to collapse
Working on it so ....... like I mentioned I'm new to this linux world.
It got nothing to do with the RC title. It got to do with more important things in life then setting up github.
I will get there when I got time.
If this is bad , well sorry then.
No problem, I will ask admin to close thread and I will remove all links as y'all think I'm in violation of GPL and don't have the patience to let me learn how to setup a github properly.
Hmm, and like I never gave anything back to the community?
civato said:
No problem, I will ask admin to close thread and I will remove all links as y'all think I'm in violation of GPL and don't have the patience to let me learn how to setup a github properly.
Click to expand...
Click to collapse
Uhm, no no no, I don't think you're violating anything, don't get this in the wrong way.
I just wanted to encourage you to set up a Github account, as this will ensure that all other kernel developers will participate from your work as well.
Due to pengus77 github profile you were able to use his patches, if he wants to use something of your work it's quite hard for him to do so as he would have to extract that from your zip.
If you need help in setting it up or got questions about how to properly work with git feel free to PM me anytime.
@louiscypherbr: I'm not interested in pushing people away, I'm interested in ensuring everyone can take patches from others, as that will lead, ultimatively, to even better kernels.
So there's no place for your attitude and swearwords.
@louiscypherbr civato, tonyp, pengus77 etc know what to do. Nobody pushes away none.
tonyp made it clear that he has no intention to make civato stop developing his great kernel. It is common sense that github helps people share their ideas and experience for making and improving projects. It's not bad at all. I am very sure that Civato will push his code at github when he is ready.
Keep up guys and leave the code in peace!
Post not needed
Re: [KERNEL] CivZ SITHLORD Kernel - for LG ICS roms / New bootloader only
I think that those self imposed CENTURIONS, have the law in their hands and we all agree with the rules. But there is another gold rule that has to be used...TACT is like a velvet revolver that SOFTENS the blow of truth.
There was the case of the great integrator GUESTE, now CIVATO who is next?, carburano?, Jishur?.
We all agree with GPL, but most agree with the great work of this people, that make things for them and share!!....
CENTURIONS, if you are eagerly seeking for standards and good practices...A F.......G PERSONAL MESSAGE IS MANDATORY...
I don't see Linus Torvalds complain in nobody's threads....
Guys, we the people are the one that you affect the most...we are learning... but not only with your WORK, we learn from many people.
SO STOP GETTING OUT GOOD PEOPLE FROM XDA AND HAVE TACT AND PATIENCE...YOU WILL HAVE YOUR LINES OF CODE ON ITS TIME...
Sent from my LG-P990 using Tapatalk 2
galpec said:
I think that those self imposed CENTURIONS, have the law in their hands and we all agree with the rules. But there is another gold rule that has to be used...TACT is like a velvet revolver that SOFTENS the blow of truth.
There was the case of the great integrator GUESTE, now CIVATO, who is next?, carburano?, Jishur?.
We all agree with GPL, but most agree with the great work of this people, that make things for them and share!!....
CENTURIONS, if you are eagerly seeking for standards and good practices...A F.......G PERSONAL MESSAGE IS MANDATORY...
I don't see Linus Torvalds complain in nobodys threads....
Guys, we the people are the one that you affect the most...we are learning... but not only with your WORK, we learn from many people.
SO STOP GETTING OUT GOOD PEOPLE FRPM XDA AND HAVE TACT AND PATIENCE...YOU WILL HAVE YOUR LINES OF CODE ON ITS TIME...
Sent from my LG-P990 using Tapatalk 2
Click to expand...
Click to collapse
All good so far and i agree, but see, i'm one of those that you probably refer to as "centurions" and i feel a little weird about that (if not, it's ok, my misunderstanding). All my code is on github and ALL the devs are picking it up to improve their kernels. Well, devs is a big word apparently, most of the stuff around now is merely a collection of cherry picks in the end...
But anyway, because of this i was asking civato to push his code to github, to keep track of other people's code in his kernel and to allow other developers to pick his things. This is the spirit of open source and open development that i've been following for almost 20 years now so, please, don't tell me that i want people out of xda only because i asked for public source tracking. It's a normal and standard thing, nothing impossible or difficult, nothing that requires a degree in cs, and nothing that is out of the ordinary. It was a polite request, remembering how important is to adhere to the gpl rules (not xda ones, i wouldn't even dare such a comment) because i fully do and, probably because i'm used to this, i expect other kernel developers to do the same... just my 2 cents...
Edit: @civato don't consider this an attack or something against you please, it's not my intention at all. I just feel weird about tarballs and i usually forget to put my details in the code i write, so it gets lost in there Anyway i'll gladly help you in setting up your github if you pm me or add me on gtalk !
pengus77 said:
All good so far and i agree, but see, i'm one of those that you probably refer to as "centurions" and i feel a little weird about that. All my code is on github and ALL the devs are picking it up to improve their kernels. Well, devs is a big word apparently, most of the stuff around now is merely a collection of cherry picks in the end...
But anyway, because of this i was asking civato to push his code to github, to keep track of other people's code in his kernel and to allow other developers to pick his things. This is the spirit of open source and open development that i've been following for almost 20 years now so, please, don't tell me that i want people out of xda only because i asked for public source tracking. It's a normal and standard thing, nothing impossible or difficult, nothing that requires a degree in cs, and nothing that is out of the ordinary. It was a polite request, remembering how important is to adhere to the gpl rules (not xda ones, i wouldn't even dare such a comment) because i fully do and, probably because i'm used to this, i expect other kernel developers to do the same... just my 2 cents...
Click to expand...
Click to collapse
^ this. There was never an obligation in his post, he was just asking kindly to help the community by sharing his work in an appropriate way.
Re: [KERNEL] CivZ SITHLORD Kernel - for LG ICS roms / New bootloader only
@tonyp I think this is the kind of message you should use...for other occasions that need goalkeeping actions...
"If you need help in setting it up or got questions about how to properly work with git feel free to PM me anytime."
If somebody doesn't understand, a PM is mandatory but as this.
Suggested Personal Message:
"Due to great developers that have github profile, people were able to use their patches, there is the case of pengus77, that helped your great work. But if we want to use something of your great work it's quite hard for us to do so as we would have to extract that from your zip.
So please I encourage you to unite forces with us, and share with the same utilities like github."
@civato Don't go please we are learning just not downloading...
Best regards to all.
galpec
Sent from tapatalk app.
---------- Post added at 06:09 PM ---------- Previous post was at 06:05 PM ----------
First of all I think that @tonyp and you @pengus77 are a great giving, dev, geniuses, etc. examples. So nothing personal here at all . But we have to Use the rules not only in developing, also in best practices of communication such as tact...so:
@pengus77
@tonyp: I did't see nothing polite in starting helping somebody telling this as starting sentence:
"Taking loads of kernel patches from other peoples Github and providing your kernel as a tarball..."
In my last message it's a quite example of how to do this... not hitting and then say "no offense mate but...it's the law...." mmmmm
Best regards to all
galpec
Sent from my LG-P990 using Tapatalk 2
Ok, guys/gals(if any)
This thread has kind of taken a really bad turn right at the start. I've gone through and cleaned some of the off topic stuff,(left some in). How about we try this all over again and start from scratch from this point on.
Lets keep on topic now that we have a new start
Thanks!
Edit: Didn't see kangis post.
Let's get back on topic.
wawyed said:
^ this. There was never an obligation in his post, he was just asking kindly to help the community by sharing his work in an appropriate way.
Click to expand...
Click to collapse
This.
Hey guys, I'm back with a new KERNEL for both Variants of the Tab S 10.5 (T800 and T805)!
Some guys probably know me from the IronRom . I decided myselfe to create a custom kernel for our really great Tab s 10.5, I'm getting better and better at this stuff, I don't thought that
It is basically the normal kernel with some modifications for better performance and hopefully also batterylife. It is for the stock kitkat (4.4.2) touchwiz and not for cyanogenmod or something else.
I excuse all devs here visiting my github page, it is such a mess (with the commits)! I know it, but I'm doing this the first time, so hopefully you will forgive me.
The kernel is pretty stable, I just call it a beta version, because I can't test the T800 version, so if with thisone also all works great -> stable
IF YOU FOLLOW MY STEPS BELOW, YOU WILL MAY LOSE YOUR WARRANTY, KNOX WILL DISPLAY 0x1! I'M NOT RESPONSIBLE FOR ANY DAMAGED DEVICE!
You can try to use the kernel adiutor app, or just the preinstalled sTweaks, but not both at the same time! This will cause problems.
Notice, V2.0 and onwards is only for TW lollipop and not for kitkat anymore!!
Features of my Kernel::- Built with latest 5.2 Toolchain compiled by myself!!
- Latest Kernel version 3.4.109, includes all updates from linux mainstream, patched it form 3.4.39 up to 3.4.109 (was a lot of work)
- Choose between different CPU governors: Interactive (default), Powersave, Performance, Userspace, Conservative, Intellidemand, Intelliactive, Ondemand, Adaptive, Abyssplug, AbyssplugV2, Badass, DanceDance, ZZmove, Nightmare, Wheatley, Lionheart, Darkness, PegasusQ and Intellimm
- Built with latest ramdisk sources from samsung
- Kernelsource from T805XXU1BOG2
- Underclock to 200MHz and Overclock to 2.0GHz
- GPU works from 100MHz to 733MHz (default)
- I/O schedulers: ROW (Default), cfq, No-op, Deadline, Test, BFQ, FIOPS, SIO, VR, ZEN, FIFO and SIOplus
- Readahead can be set
- UKSM (Ultar Kernel Samepage Merging)
- Gentlefairsleeper and ARCH power
- Android Logger
- data and cache f2fs support!
- Init.d Support
- Busybox support
- Full STweaks support
- Charging Control
- Cpufreq voltcontrol
- ZRam and Swap
- Allow ADB-Insecure
- Low Memory Kill
- TCP (Network) control: Cubic (default), Reno, Bic, Westwood, Highspeed, Hybla, HTCP, Vegas, Veno, Scalable, LP, Yeah and Illinois
- SeLinux is set to permissive
- Compiled as small as it could be (just around 6MB)
Download:In the second post
Googy Max STweaks
Bugs/Problems:-sTweaks can't enable the right GPU over and underclock freqency
-Some other stweaks stuff, you will see
-Didn't tried the voltage table
Instructions:
If you want to install the Kernel, follow this:
1. Install a custom recovery for your tablet, like this one here: TWRP Recovery
2. Follow the instructions on the page above, until you get a working recovery
3. Download the Kernel from below and copy it to your external SD Card
4. Reboot to your recovery by pressing volume up, home button and power button at the same time.
5. Install zip, and select the kernel
6. Wipe cache and dalvik cache (recommand)
7. Reboot
Support:If you like my work, please hit a thanks down on my posts. A thanks is enough!:highfive: If you really really really really really like my work, you can donate something to me, but it is not necessary. I created a paypal account, just in case, someone would give me a small donation. :good:
As I said, you don't have to give me something, but this keeps me motivated to built better roms and keep updating everything. It's your choice, and I'm very thankfull for every donation! No matter how big it is! Thank you so much for supporting me, cheers and have a nice day :fingers-crossed:
Donators for the Kernel:- @Hookmt Thank you very much for your support giving to me! I really love that and it also wasn't the first time you donate something to me! Thank you so much, I really really really appreciat that mate. Transaction number: 42P214019W495221S
Credits/Thanks:- Samsung for sources
- @Christopher83 for the compiler
- @UpInTheAir for the work he already did in his own kernel (could use some of his commits on github (opensource) and see what he did when I didn't know what I did wrong). He also inspired me to work on my own stuff and kernel, thank you very much!
- @googy_anas, without him, I would not have a working kernel here, he did so much for me and also for his own kernel! He
let me use everything he already did, I got so much stuff from his page and included it in my kernel. I'm so thankfull for all the support he gave to me! I know a thank you isn't enough, but I wanted to write it here.
- @googy_anas (again this great man!) and @kryten2k35 thank you so much for let me using your stweaks app! Great work you have done on thatone!
- @faux123 for all the great stuff he did for the kernels
- @Yank555
If you want to take my work and need it somewhere, or do other things with it, please ask me first for the permission. Otherwise you are not allowed to take it! Thank you !
XDA:DevDB Information
Stock Based Kernel for Tab S 10.5, Kernel for the Samsung Galaxy Tab S
Contributors
Tkkg1994, @googy_anas
Source Code: https://github.com/Tkkg1994/IronKernel
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: V2.5
Stable Release Date: 2015-10-13
Current Beta Version: 1.0
Beta Release Date: 2015-02-19
Created 2015-02-20
Last Updated 2015-10-12
Changelog:
Kitkat
IronKernel Beta V1.0 on 20.02.2015:
Initial release!
Ironkernel V1.1 26.02.2015:
-Temporarly removed Intelli-Plug
-Added voltcontroll for CPU
-Added Stweaks support and Stweaks app (all credits and stuff goes to @googy_anas and @Kryten2k35
-Hell lot of improvements
-Init.d support and busybox support
-GPU overclock to 733MHz
-CPU overclock to 2.1GHz (sorry, I couldn't get it stable )
-for more what I had done, visit here: Commits IronKernel
-Added fast charge support
IronKernel V1.2 01.03.2015:
- Built with latest toolchain (2015.02) by christopher83
- Use frandom from now
- Enable dynamic page writeback with earlysuspend
- Better battery charging control (kernel and stweaks)
- Auto install the right sTweaks version
- Reduce overestimating rq->avg_idle
- Optimize find_busiest_queue()
- Some CPUfreq optimizations
- Dynamic sync control with earlysuspend support
- Lowmemorykiller: implement task's adj rbtree
- Check free memory when tasks switch to background
- Dynamic FSync
- SOO Much more but I don't remember all
- After flashing the kernel, it will be successfull, but then show an error (becaus of mounting partition) don't worry, just reboot. Just ignore it
Changelog V1.3.5 08.03.15:
- Prerelease of V1.3 was on the ironrom
- Script auto-removes all knox containors/apps
- cpufreq: Retain only online cpus in managed_policy->cpus
- cpufreq: make the "scaling_cur_freq" sysfs entry pollable
- cpufreq: Make the "scaling_governor" sysfs node pollable
- cpufreq: Save and restore min and max frequencies
- fix some missing stuff with default governor
- cpufreq: Notify governors when cpus are hot-[un]plugged
- Updated nightmare and zzmoove governors
- net: ipv6: Add a sysctl to make optimistic addresses useful candidates
- fs/proc/task_mmu.c: add user-space support for resetting mm
- net: ipv6: allow choosing optimistic addresses with use_optimistic
- sched/idle: Avoid spurious wakeup IPIs
- cpufreq: Return directly in __cpufreq_get if policy is NULL
- new relation between governors
- ARM: 8226/1: cacheflush: get rid of restarting block
Changelog V1.4 23.03.15:
- It is simply to much to write everything here.. what I did
- Wolfson Control for the sound on our Tab S
- Added voltage control (doesen't work 100%)
- sched: Add an rq migration call-back to sched_class
- sched: Account for blocked load waking back up …
- sched: Normalize tg load contributions against runnable time
- sched: Refactor update_shares_cpu() -> update_blocked_avgs()
- sched/fair: Set se->vruntime directly in place_entity()
- sched: provide per cpu-cgroup option to notify on migrations
- sched: Make sure to not re-read variables after validation
- sched: Add WAKEUP_PREEMPTION feature flag, on by default
And this goes on for like 2 or 3 pages lol So the changelog is tooooooo long.
Lollipop
Changelog V2.0 10.04.15:
- Full lollipop compatible! (not with kitkat anymore!)
- Support CIFS
- Overclock to 2.0 GHz (other will be back soon)
- Include all features of all previous releases! Such as stweask, overclocked gpu etc.
- Based on latest samsung opensource T800XXU1BOCC
Was a lot of work to port all to Lollipop
If you got problems with sTweaks showing "loaded", but nothing happen, go to a root explorer, navigate to system/xbin, copy Busybox and past it in /sbin direction!
Changelog V2.1 16.05.15:
- Fix stweaks problems
- Voltage is still NOT working
- add tripndroid scheduler
- add row scheduler
- add and enable UKSM (ultra kernel samepage merging)
- update ramdisk to latest versions
- f2fs
- update linux to 3.4.107
- more stuff I may forgot
Changelog V2.2 08.07.15:
- Update to latest linux mainstream (3.4.108)
- Updated ramdisk source to OE3
- New source patches from official kernel opensource center (samsung)
- this does only work on the newer bases, as BOE3, the old ones will get a bootloop!
Changelog V2.2.5 16.07.15:
- Fixed "slow" charging (Thanks to AndreiLux and UpInTheAir!)
- Incrased sound so it will be a louder by default
- Some other small ramdisk fixes
Changelog V2.3 08.09.15:
- Kernel Rebased on latest OG2 kernel source
- Fix some heating issues that where reported
- Ramdisk update to OG2
- Fully support f2fs in /data and /cache
- Build with latest 4.9.4 toolchain
Changelog V2.4 05.10.15:
- Update to 5.2 toolchain compiled by myself!
- updated to 3.4.109 linux
- ftrace: Make all inline tags also include notrace
- compiler-gcc4.h: correct verion check for __compiletime_error
- compiler.h: add __visible
- compiler{,-gcc4}.h, bug.h: Remove duplicate macros
- some more optimisations concerning compiler
- msm: cpufreq: Only apply driver limits for scaling_min/max_freq writes
- drivers: cpufreq: Send a uevent when governor changes
- cpufreq: Save user policy min/max instead of policy min/max during hotplug
- cpufreq: Fix broken uevents for cpufreq governor and cpu devices
- cpufreq: Always allow update of user policy
- drivers: cpufreq: Upstream optimizations
- cpufreq: Export user_policy min/max
- cpufreq: Add policy notifiers
- cpufreq: Simplify cpufreq_add_dev()
- some more cpufreq things that I made
- cpufreq_stats: do not remove sysfs files if frequency table is not present
- sched/numa: Rewrite the CONFIG_NUMA sched domain support
- sched/numa: Fix the new NUMA topology bits
- sched/numa: Don't scale the imbalance
- sched/debug: Fix printing large integers on 32-bit platforms
- sched: Remove stale power aware scheduling remnants and dysfunctional knobs
- f2fs: update to latest version
- tima debug log disabled
- uksm: disabled by default
Changelog V2.5 13.10.15:
- enabled tima debug again
- fixed some Random reboots people had
- added pegasusq cpugovernor
- arm/crypto: Add optimized AES and SHA1 routines
- added cifs, nfs, exportfs, cdrom, all ramdisk support (joystick too)
- ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible
- ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling
- ARM: 8119/1: crypto: sha1: add ARM NEON implementation
- ARM: 8120/1: crypto: sha512: add ARM NEON implementation
- a lot of other crypto optimisations (like 10 patches)
- cpufreq: Move get_cpu_idle_time() to cpufreq.c
- workqueue: set delayed_work->timer function on initialization
- workqueue: don't use WQ_HIGHPRI for unbound workqueues
- workqueue: factor out worker_pool from global_cwq
- workqueue: use @pool instead of @gcwq or @Cpu where applicable
- workqueue: separate out worker_pool flags
- workqueue: introduce NR_WORKER_POOLS and for_each_worker_pool()
- workqueue: reimplement WQ_HIGHPRI using a separate worker_pool
- hashtable: introduce a small and naive hashtable
- workqueue: use new hashtable implementation
- workqueue: drop @bind from create_worker()
- much more workqueue updates, to see them all, please visit here: Github Kernel Updates
Governors and I/O Scheduler:
Original Thread: Governor Explained, all credits go to @stempox
1: OnDemand
2: OndemandX
3: Performance
4: Powersave
5: Conservative
6: Userspace
7: Min Max
8: Interactive
9: InteractiveX
10: Smartass
11: SmartassV2
12: Scary
13: Lagfree
14: Smoothass
15: Brazilianwax
16: SavagedZen
17: Lazy
18: Lionheart
19: LionheartX
20: Intellidemand
21: Hotplug
22: BadAss
23: Wheatley
24: Lulzactive
25: Pegasusq/Pegasusd
26: hotplugx
27: AbissPlug
28: MSM DCVS
29: IntelliActive
30: Adaptive
31: Nightmare
32: ZZmove
1: OnDemand Governor:
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.
2: OndemandX:
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
3: 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).
4: Powersave Governor:
The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.
5: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.
The Conservative Governor is also frequently described as a "slow OnDemand," if that helps to give you a more complete picture of its functionality.
6: 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.
7: Min Max
well this governor makes use of only min & maximum frequency based on workload... no intermediate frequencies are used.
8: 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.
9: InteractiveX Governor:
Created by kernel developer "Imoseyon," the InteractiveX governor is based heavily on the Interactive governor, enhanced with tuned timer parameters to better balance battery vs. performance. The InteractiveX governor's defining feature, however, is that it locks the CPU frequency to the user's lowest defined speed when the screen is off.
10: Smartass
Is based on the concept of the interactive governor.
I have always agreed that in theory the way interactive works – by taking over the idle loop – is very attractive. I have never managed to tweak it so it would behave decently in real life. Smartass is a complete rewrite of the code plus more. I think its a success. Performance is on par with the “old” minmax and I think smartass is a bit more responsive. Battery life is hard to quantify precisely but it does spend much more time at the lower frequencies.
Smartass will also cap the max frequency when sleeping to 352Mhz (or if your min frequency is higher than 352 – why?! – it will cap it to your min frequency). Lets take for example the 528/176 kernel, it will sleep at 352/176. No need for sleep profiles any more!"
11: SmartassV2:
Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.
12: Scary
A new governor wrote based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance. It will give the same performance as conservative right now, it will get tweaked over time.
13: 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.
14: Smoothass:
The same as the Smartass “governor” But MUCH more aggressive & across the board this one has a better battery life that is about a third better than stock KERNEL
15: Brazilianwax:
Similar to smartassV2. More aggressive ramping, so more performance, less battery
16: SavagedZen:
Another smartassV2 based governor. Achieves good balance between performance & battery as compared to brazilianwax.
17: Lazy:
This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.
18: Lionheart:
Lionheart is a conservative-based governor which is based on samsung's update3 source.
The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
19: LionheartX
LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.
20: Intellidemand:
Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors)
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.
21: Hotplug Governor:
The Hotplug governor performs very similarly to the OnDemand governor, with the added benefit of being more precise about how it steps down through the kernel's frequency table as the governor measures the user's CPU load. However, the Hotplug governor's defining feature is its ability to turn unused CPU cores off during periods of low CPU utilization. This is known as "hotplugging."
22: BadAss Governor:
Badass removes all of this "fast peaking" to the max frequency. On a typical system the cpu won't go above 918Mhz and therefore stay cool and will use less power. To trigger a frequency increase, the system must run a bit @ 918Mhz with high load, then the frequency is bumped to 1188Mhz. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 1-2 seconds, depending on the load your system is experiencing)
Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1188Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
23: Wheatley:
Building on the classic 'ondemand' governor is implemented Wheatley governor. The governor has two additional parameters:
target_residency - The minimum average residency in µs which is considered acceptable for a proper efficient usage of the C4 state. Default is 10000 = 10ms.
allowed_misses - The number sampling intervals in a row the average residency is allowed to be lower than target_residency before the governor reduces the frequency. This ensures that the governor is not too aggressive in scaling down the frequency and reduces it just because some background process was temporarily causing a larger number of wakeups. The default is 5.
Wheatley works as planned and does not hinder the proper C4 usage for task where the C4 can be used properly .
For internet browsing the time spend in C4 has increased by 10% points and the average residency has increased by about 1ms. I guess these differences are mostly due to the different browsing behaviour (I spend the last time more multi-tabbing). But at least we can say that Wheatley does not interfere with the proper use of the C4 state during 'light' tasks. For music playback with screen off the time spend in C4 is practically unchanged, however the average residency is reduced from around 30ms to around 18ms, but this is still more than acceptable.
So the results show that Wheatley works as intended and ensures that the C4 state is used whenever the task allows a proper efficient usage of the C4 state. For more demanding tasks which cause a large number of wakeups and prevent the efficient usage of the C4 state, the governor resorts to the next best power saving mechanism and scales down the frequency. So with the new highly-flexible Wheatley governor one can have the best of both worlds.
Obviously, this governor is only available on multi-core devices.
24: Lulzactive:
Lulzactive:
This new find from Tegrak is based on Interactive & Smartass governors and is one of the favorites.
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency.
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
25: Pegasusq/Pegasusd
The Pegasus-q / d is a multi-core based on the Ondemand governor and governor with integrated hot-plugging.
Ongoing processes in the queue, we know that multiple processes can run simultaneously on. These processes are active in an array, which is a field called "Run Queue" queue that is ongoing, with their priority values arranged (priority will be used by the task scheduler, which then decides which process to run next).
To ensure that each process has its fair share of resources, each running for a certain period and will eventually stop and then again placed in the queue until it is your turn again. If a program is terminated, so that others can run the program with the highest priority in the current queue is executed.
26: hotplugx
It 'a Hotplug modified and optimized for the suspension in off-screen
27: AbissPlug
It 'a Governor derived hotplug, it works the same way, but with the changes in savings for a better battery.
28: MSM DCVS
a very efficient and wide range of Dynamic Clock and
Voltage Scaling (DCVS) which addresses usage models from
active standby to mid and high level processing requirements.
A Krait CPU can smoothly scale from low power, low
leakage mode to blazingly fast performance.
Believe it's a governor that is mfg'd by qualcomm to utilize new on chip features.
MSM is the prefix for the SOC (MSM8960) and DCVS is Dynamic Clock and Voltage Scaling. Makes sense, MSM-DCVS
29: IntelliActive
Based off Google's Interactive governor with the following enhancements:
1. self-boost capability from input drivers (no need for PowerHAL assist)
2. two phase scheduling (idle/busy phases to prevent from jumping directly to max freq
3. Checks for offline cpus and short circuits some unnecessary checks to improve code execution paths
30: Adaptive
This driver adds a dynamic cpufreq policy governor
designed for latency-sensitive workloads and also for demanding
performance.
This governor attempts to reduce the latency of clock
increases so that the system is more responsive to
interactive workloads in loweset steady-state but to
to reduce power consumption in middle operation level level up
will be done in step by step to prohibit system from going to
max operation level.
31: Nightmare
A PegasusQ modified, less aggressive and more stable. A good compromise between performance and battery.
In addition to the SoD is a prevention because it usually does not hotplug.
32: ZZmove
ZZmove Governor optimized for low power consumption with the screen off, with particular attention to the limitation of consumption applications in the background with the screen off, such as listening to music. It has three settings: battery saver, balanced and performance. In addition to a performance boost, there is also the governor zzmove optimized.
I/O Scheduler: Thread:I/O Scheduler explained
The Scheduler is an algorithm that, given a set of requests for access to a resource, establishing a temporal order for the execution of such requests, favoring those that meet certain criteria in order to optimize access to that resource.
The difference between the various scheduler is the focus on certain criteria rather than on others.
The choice of a given scheduler does not produce visible changes so as to the choice of the governor, but still provides some improvements.
As usual schedulers are personally tested to find one that best suits your needs.
Deadline
It aims to provide a deadline, a deadline for all requests in order to avoid undesirable phenomena such as the "starvation" or the eternal waiting for some requests that occurs when one or more background processes are left indefinitely in the queue the ready, because there is always at least one of the highest priority ready process.
V (r)
The next request is performed according to the distance from the last request. In the network running good opinions about this scheduler.
No-op
Push all requests in a single queue simply by their arrival order, grouping together those contiguous.
SIO
E 'the scheduler simpler, does not make any type of sort, is intended only for the purpose of obtaining a low-latency, ie to reduce the amount of time that elapses between the instant at which the request is generated and that in which the request is satisfied.
CFQ
Order requests of different processes in queues for each queue type and assigns a specific interval of time whose duration depends on the priorities assigned to processes. Can be considered the Ondemand the scheduler, the scheduler is in fact more balanced, doing its job in an honest manner.
BFQ
It 's based on CFQ but, instead of the intervals of time, assigns a part of the bandwidth of the disc to each process running in a proportional manner.
Anticipatory
Order requests based on criteria predictive, that puts the demands paused for a short period of time in anticipation that more of this to come to aggregate them.
ADAPTIVE ANTICIPATORY SCHEDULER
For the anticipatory scheduler, we scale up the anticipation timeout (antic expire) using the latency scaling factor over time. When the virtual disk latencies are low a small scaling of the timeout is sucient to prevent deceptive idleness, whereas when the latencies are high a larger scaling of the timeout value may be required to achieve the same. Note that such dynamic setting of the timeout value ensures that we attain a good trade-o between throughput (lost due to idling) and deceptive idleness mitigation. Setting a high value for the scaling factor (increasing idling time) only happens when the disk service latencies themselves are higher. This may not necessarily cause a signicant loss in throughput, because submitting a request from another process instead of idling is not going to improve throughput if the virtual disk itself does not get any faster than it is at the current period. A higher anticipation timeout might also be capable of absorbing process scheduling eects inside the VM. The results for the adaptive anticipatory scheduler are shown in Figure 2. The read time with our modied implementation (third bar in the dierent scheduler combinations) shows that it is possible to mitigate the eects of deceptive idleness by adapting the timeout. An interesting related observation is that the level to which the improve- ment is possible varies for dierent Domain-0 schedulers; noop - 39%, anticipatory - 67% and cfq - 36%. This again points to the fact that the I/O scheduler used in Domain-0 is important for the VM's ability in enforcing I/O scheduling guarantees. Dierent Domain-0 I/O schedulers likely have a dierent service latency footprint inside the VMs, contributing to dierent levels of improvement.
ROW
Row stands for READ Over WRITE which is the main requests dispatch policy of this algorithm. The ROW IO scheduler was developed with the mobile devices needs in mind. In mobile devices we favor user experience upon everything else, thus we want to give READ IO requests as much priority as possible. In mobile devices we won't have as much parallel threads as on desktops. Usually it's a single thread or at most 2 simultaneous working threads for read & write. Favoring READ requests over WRITEs decreases the READ latency greatly.
The main idea of the ROW scheduling policy is: If there are READ requests in pipe - dispatch them but don't starve the WRITE requests too much. Bellow you'll find a small comparison of ROW to existing schedulers. The test that was run for these measurements is parallel read and write.
FIOS
Flash-based solid-state drives (SSDs) have the potential to eliminate the I/O bottlenecks in data-intensive applications However the large performance discrepancy between Flash reads and writes introduces challenges for fair resource usage. Further, existing fair queuing and quanta-based I/O schedulers poorly manage the I/O anticipation for Flash I/O fairness and efficiency. Some also suppress the I/O parallelism which causes substantial performance degradation on Flash. This paper develops FIOS, a new Flash I/O scheduler that attains fairness and high efficiency at the same time. FIOS employs a fair I/O time-slice management with mechanisms for read preference, parallelism, and fairness-oriented I/O anticipation. Evaluation demonstrates that FIOS achieves substantially better fairness and efficiency compared to the Linux CFQ scheduler, the SFQ(D) fair queuing scheduler, and the Argon quanta-based scheduler on several Flash-based storage devices (including a CompactFlash card in a low-power wimpy node). In particular, FIOS reduces the worst-case slowdown bya factor of 2.3 or more when the read-only SPECweb workload runs together with the write-intensive TPC
Sweet! In terms of battery life, did it improve for you? You made one of the best TW roms and now this great job!
DUHAsianSKILLZ said:
Sweet! In terms of battery life, did it improve for you? You made one of the best TW roms and now this great job!
Click to expand...
Click to collapse
Thank you! I think we have less devs here in Tab S section, so I have to do something here
I couldn't test the batterylife till now, I was testing whole 2 weeks to get the kernel working (got holidays) So I will report you back!
Intelli-Plug speeks for better batterylife, it shuts down 3 cores if they are not needed (screen off = only 1 core working with 200Mhz or something)
Tkkg1994 said:
Thank you! I think we have less devs here in Tab S section, so I have to do something here
I couldn't test the batterylife till now, I was testing whole 2 weeks to get the kernel working (got holidays) So I will report you back!
Intelli-Plug speeks for better batterylife, it shuts down 3 cores if they are not needed (screen off = only 1 core working with 200Mhz or something)
Click to expand...
Click to collapse
Thanks! Ill downgrade tommrow or so back to kitkat and try xnote rom. I can try your kernel when I do that.
DUHAsianSKILLZ said:
Thanks! Ill downgrade tommrow or so back to kitkat and try xnote rom. I can try your kernel when I do that.
Click to expand...
Click to collapse
Always a pleasure to have you as a user!
Not the ironrom
Wrong thread
Mokum020 said:
Thank you for your great work (again)!
Your kernel is running perfect here on T805 with X-Note.
would love to be able to try 2.1/2.2Ghz, 2.1Ghz is no problem for my Tab S with SkyHigh.
View attachment 3174370View attachment 3174371
Click to expand...
Click to collapse
I always make kind of a "stresstest" for the CPU freq. I set min freq to 2.1GHz and max freq to 2.1GHz. Than see what happen. I couldn't get it stable enough for daily use, but if I can, I will enable 2.1GHz for sure
Confirmed working on the T800 with xnote rom.
DUHAsianSKILLZ said:
Confirmed working on the T800 with xnote rom.
Click to expand...
Click to collapse
Thank you for testing
I added a description of governors and I/O schedulers above
To install this with Ironrom, should I do anything with Synapse first to either return settings to default or uninstall? Or should I reflash IronRom, leaving out Synapse in Aroma and then flash the new kernel? I plan on trying Kernel Auditor.
Also, will you be adding this kernel to the aroma options soon (or are you waiting for more testing to come in)?
Hookmt said:
To install this with Ironrom, should I do anything with Synapse first to either return settings to default or uninstall? Or should I reflash IronRom, leaving out Synapse in Aroma and then flash the new kernel? I plan on trying Kernel Auditor.
Also, will you be adding this kernel to the aroma options soon (or are you waiting for more testing to come in)?
Click to expand...
Click to collapse
The kernel doesn' support synapse. You can just uninstall it if you like to and than install your kernel auditor.
Yes it will come to aroma soon, I'm waiting for samsung to release a new base for T800
And yes, testing is always welcome
Can you include some tips for let's say performance settings, battery settings, both battery and performance settings etc. I'm still testing a few things too, but can't figure out the best battery settings in faux.
DUHAsianSKILLZ said:
Can you include some tips for let's say performance settings, battery settings, both battery and performance settings etc. I'm still testing a few things too, but can't figure out the best battery settings in faux.
Click to expand...
Click to collapse
Intelli-plug, KSM enabled, Governor... I would say intellimm is good for battery but a bit slow. Interactive with intelliplug is nice
With Stweaks Support does the Kernel support BLN (blinking Soft Keys)? God, this would be awesome!!
If not, could you create a Custom Kernel with this Feature?
haselchen said:
With Stweaks Support does the Kernel support BLN (blinking Soft Keys)? God, this would be awesome!!
If not, could you create a Custom Kernel with this Feature?
Click to expand...
Click to collapse
If you would have read correctly, you will see that I'm currently adding sTweaks support. And it don't supports it now, but seems like a good idea!
Please realize this idea
Tkkg1994, this is what I call a very promising start.
Detailed walkthrough, FAQ style, and a very interesting feature rich kernel... I'm on CM12 right now, but already eager to try this in the coming days with IronRom, of course.
A Big Thanks from the other side of the world... Porto, Portugal.
Tkkg1994 said:
Intelli-plug, KSM enabled, Governor... I would say intellimm is good for battery but a bit slow. Interactive with intelliplug is nice
Click to expand...
Click to collapse
IntellIplug is nice but sometimes you cant turn the tablet on when it's enabled. I even set the screen off frequency to something above 200mhz. I had to force reboot a couple times. Did you managed to get it work? I even tryed all the profiles including balanced etc and also changing the governer. For now I'll keep it off but battery seems good so far!
Hey guys, I'm back with a new KERNEL for both Variants of the Tab S 8.4 (T700 and T705)!
Some guys probably know me from the IronRom . I decided myselfe to create a custom kernel for our really great Tab s 8.4, I'm getting better and better at this stuff, I don't thought that
It is basically the normal kernel with some modifications for better performance and hopefully also batterylife. It is for the stock kitkat (4.4.2) touchwiz and not for cyanogenmod or something else.
I excuse all devs here visiting my github page, it is such a mess (with the commits)! I know it, but I'm doing this the first time, so hopefully you will forgive me.
The kernel is pretty stable, I just call it a beta version, because I can't test the T700 and T705 version, so if with thisone also all works great -> stable
IF YOU FOLLOW MY STEPS BELOW, YOU WILL MAY LOSE YOUR WARRANTY, KNOX WILL DISPLAY 0x1! I'M NOT RESPONSIBLE FOR ANY DAMAGED DEVICE!
You can try to use the kernel adiutor app, or just the preinstalled sTweaks, but not both at the same time! This will cause problems.
Features of my Kernel::- Built with latest Linaro Toolchain 4.9.3 made by christopher83
- Latest Kernel version 3.4.109, includes all important linux patches, patched it form 3.4.39 up to 3.4.109 (was a lot of work)
- Choose between different CPU governors: Interactive (default), Powersave, Performance, Userspace, Conservative, Intellidemand, Intelliactive, Ondemand, Adaptive, Abyssplug, AbyssplugV2, Badass, DanceDance, ZZmove, Nightmare, Wheatley, Lionheart, Darkness, PegasusQ and Intellimm
- Built with latest ramdisk sources from samsung
- Kernelsource from T805XXU1BOG2
- Underclock to 200MHz and Overclock to 2.0GHz
- GPU works from 100MHz to 733MHz (default)
- I/O schedulers: ROW (Default), CFQ, No-op, Deadline, Test, BFQ, FIOPS, SIO, VR, ZEN, FIFO and SIOplus
- Readahead can be set
- KSM (Kernel Samepage Merging)
- Gentlefairsleeper and ARCH power
- Android Logger
- Init.d Support
- data and cache f2fs support!
- Busybox support
- Full STweaks support
- Charging Control
- Cpufreq voltcontrol
- ZRam and Swap
- Allow ADB-Insecure
- Low Memory Kill
- TCP (Network) control: Cubic (default), Reno, Bic, Westwood, Highspeed, Hybla, HTCP, Vegas, Veno, Scalable, LP, Yeah and Illinois
- SeLinux is set to permissive
- Compiled as small as it could be (just around 6MB)
Download:In the second post
Googy-Max STweaks
Bugs/Problems:-sTweaks can't enable the right GPU over and underclock freqency
-Some other stweaks stuff, you will see
-Didn't tried the voltage table
Instructions:
If you want to install the Kernel, follow this:
1. Install a custom recovery for your tablet, like this one here: TWRP Recovery
2. Follow the instructions on the page above, until you get a working recovery
3. Download the Kernel from below and copy it to your external SD Card
4. Reboot to your recovery by pressing volume up, home button and power button at the same time.
5. Install zip, and select the kernel
6. Wipe cache and dalvik cache (recommand)
7. Reboot
Support:If you like my work, please hit a thanks down on my posts. A thanks is enough!:highfive: If you really really really really really like my work, you can donate something to me, but it is not necessary. I created a paypal account, just in case, someone would give me a small donation. :good:
As I said, you don't have to give me something, but this keeps me motivated to built better roms and keep updating everything. It's your choice, and I'm very thankfull for every donation! No matter how big it is! Thank you so much for supporting me, cheers and have a nice day :fingers-crossed:
Donators for the Kernel:
Credits/Thanks:- Samsung for sources
- @Christopher83 for the compiler
- @UpInTheAir for the work he already did in his own kernel (could use some of his commits on github (opensource) and see what he did when I didn't know what I did wrong). He also inspired me to work on my own stuff and kernel, thank you very much!
- @googy_anas, without him, I would not have a working kernel here, he did so much for me and also for his own kernel! He
let me use everything he already did, I got so much stuff from his page and included it in my kernel. I'm so thankfull for all the support he gave to me! I know a thank you isn't enough, but I wanted to write it here.
- @googy_anas (again ) and @kryten2k35 for the great stweaks app and that I can use your modification in the app (I don't edited it) Thank you so much!
- @faux123 for all the great stuff he did for the kernels
- @Yank555
- @AndreiLux
- @Halaszk87
If you want to take my work and need it somewhere, or do other things with it, please ask me first for the permission. Otherwise you are not allowed to take it! Thank you !
XDA:DevDB Information
Stock Based Kernel for Tab S 8.4, Kernel for the Samsung Galaxy Tab S
Contributors
Tkkg1994, @googy_anas
Source Code: https://github.com/Tkkg1994/IronKernel
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: V2.5
Stable Release Date: 2015-10-13
Current Beta Version: 1.0
Beta Release Date: 2015-02-20
Created 2015-02-20
Last Updated 2015-10-12
Changelog:
Kitkat
Ironkernel Beta V1.0 20.02.2015:
- Initial Release!
Ironkernel V1.1 26.02.2015:
-Temporarly removed Intelli-Plug
-Added voltcontroll for CPU
-Added Stweaks support and Stweaks app (all credits and stuff goes to @googy_anas and @Kryten2k35
-Hell lot of improvements
-Init.d support and busybox support
-GPU overclock to 733MHz
-CPU overclock to 2.1GHz (sorry, I couldn't get it stable )
-Fast charge control
-for more what I had done, visit here: Commits IronKernel
IronKernel V1.2 01.03.2015:
- Built with latest toolchain (2015.02) by christopher83
- Use frandom from now
- Enable dynamic page writeback with earlysuspend
- Better battery charging control (kernel and stweaks)
- Auto install the right sTweaks version
- Reduce overestimating rq->avg_idle
- Optimize find_busiest_queue()
- Some CPUfreq optimizations
- Dynamic sync control with earlysuspend support
- Lowmemorykiller: implement task's adj rbtree
- Check free memory when tasks switch to background
- Dynamic FSync
- SOO Much more but I don't remember all
- After flashing the kernel, it will be successfull, but then show an error (becaus of mounting partition) don't worry, just reboot. Just ignore it
Changelog V1.3.5 08.03.15:
- Prerelease of V1.3 was on the ironrom
- Script auto-removes all knox containors/apps
- cpufreq: Retain only online cpus in managed_policy->cpus
- cpufreq: make the "scaling_cur_freq" sysfs entry pollable
- cpufreq: Make the "scaling_governor" sysfs node pollable
- cpufreq: Save and restore min and max frequencies
- fix some missing stuff with default governor
- cpufreq: Notify governors when cpus are hot-[un]plugged
- Updated nightmare and zzmoove governors
- net: ipv6: Add a sysctl to make optimistic addresses useful candidates
- fs/proc/task_mmu.c: add user-space support for resetting mm
- net: ipv6: allow choosing optimistic addresses with use_optimistic
- sched/idle: Avoid spurious wakeup IPIs
- cpufreq: Return directly in __cpufreq_get if policy is NULL
- new relation between governors
- ARM: 8226/1: cacheflush: get rid of restarting block
Changelog V1.4 23.03.15:
- It is simply to much to write everything here.. what I did
- Wolfson Control for the sound on our Tab S
- Added voltage control (doesen't work 100%)
- sched: Add an rq migration call-back to sched_class
- sched: Account for blocked load waking back up …
- sched: Normalize tg load contributions against runnable time
- sched: Refactor update_shares_cpu() -> update_blocked_avgs()
- sched/fair: Set se->vruntime directly in place_entity()
- sched: provide per cpu-cgroup option to notify on migrations
- sched: Make sure to not re-read variables after validation
- sched: Add WAKEUP_PREEMPTION feature flag, on by default
And this goes on for like 2 or 3 pages lol So the changelog is tooooooo long.
Lollipop
Changelog V2.0 08.07.15:
- @Richcar confirmed that it works (trust him )
- updated to linux 3.4.108 mainstream
- f2fs update
- add tripndroid scheduler
- add row scheduler
- add and enable UKSM (ultra kernel samepage merging)
- update ramdisk to latest versions
- more things I may forgot
- ONLY for touchwiz lollipop! You MUST have a EO3 base or higher (your rom)
Changelog V2.0.5 16.07.15:
- Fixed "slow" charging (Thanks to AndreiLux and UpInTheAir!)
- Incrased sound so it will be a louder by default
- Some other small ramdisk fixes
- Update to OF1 and OF2 ramdisk
- You have to be on latest samsung based roms (as OEx or OFx) otherwise not booting!
Changelog V2.5 13.10.15:
- Merged latest OG2 source, adapted by OE9 source from T705, fully rebased kernel!
- Update to 5.2 toolchain compiled by myself!
- this kernel is now up-to-date with T800/T805 kernel!
- updated to 3.4.109 linux
- ftrace: Make all inline tags also include notrace
- compiler-gcc4.h: correct verion check for __compiletime_error
- compiler.h: add __visible
- compiler{,-gcc4}.h, bug.h: Remove duplicate macros
- some more optimisations concerning compiler
- msm: cpufreq: Only apply driver limits for scaling_min/max_freq writes
- drivers: cpufreq: Send a uevent when governor changes
- cpufreq: Save user policy min/max instead of policy min/max during hotplug
- cpufreq: Fix broken uevents for cpufreq governor and cpu devices
- cpufreq: Always allow update of user policy
- drivers: cpufreq: Upstream optimizations
- cpufreq: Export user_policy min/max
- cpufreq: Add policy notifiers
- cpufreq: Simplify cpufreq_add_dev()
- some more cpufreq things that I made
- cpufreq_stats: do not remove sysfs files if frequency table is not present
- sched/numa: Rewrite the CONFIG_NUMA sched domain support
- sched/numa: Fix the new NUMA topology bits
- sched/numa: Don't scale the imbalance
- sched/debug: Fix printing large integers on 32-bit platforms
- sched: Remove stale power aware scheduling remnants and dysfunctional knobs
- f2fs: update to latest version
- uksm: disabled by default
- fixed some Random reboots people had
- added pegasusq cpugovernor
- arm/crypto: Add optimized AES and SHA1 routines
- added cifs, nfs, exportfs, cdrom, all ramdisk support (joystick too)
- ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible
- ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling
- ARM: 8119/1: crypto: sha1: add ARM NEON implementation
- ARM: 8120/1: crypto: sha512: add ARM NEON implementation
- a lot of other crypto optimisations (like 10 patches)
- cpufreq: Move get_cpu_idle_time() to cpufreq.c
- workqueue: set delayed_work->timer function on initialization
- workqueue: don't use WQ_HIGHPRI for unbound workqueues
- workqueue: factor out worker_pool from global_cwq
- workqueue: use @pool instead of @gcwq or @Cpu where applicable
- workqueue: separate out worker_pool flags
- workqueue: introduce NR_WORKER_POOLS and for_each_worker_pool()
- workqueue: reimplement WQ_HIGHPRI using a separate worker_pool
- hashtable: introduce a small and naive hashtable
- workqueue: use new hashtable implementation
- workqueue: drop @bind from create_worker()
- much more workqueue updates, to see them all, please visit here: Github Kernel Updates
Governors and I/O Scheduler:
Original Thread: Governor Explained, all credits go to @stempox
1: OnDemand
2: OndemandX
3: Performance
4: Powersave
5: Conservative
6: Userspace
7: Min Max
8: Interactive
9: InteractiveX
10: Smartass
11: SmartassV2
12: Scary
13: Lagfree
14: Smoothass
15: Brazilianwax
16: SavagedZen
17: Lazy
18: Lionheart
19: LionheartX
20: Intellidemand
21: Hotplug
22: BadAss
23: Wheatley
24: Lulzactive
25: Pegasusq/Pegasusd
26: hotplugx
27: AbissPlug
28: MSM DCVS
29: IntelliActive
30: Adaptive
31: Nightmare
32: ZZmove
1: OnDemand Governor:
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.
2: OndemandX:
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
3: 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).
4: Powersave Governor:
The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.
5: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.
The Conservative Governor is also frequently described as a "slow OnDemand," if that helps to give you a more complete picture of its functionality.
6: 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.
7: Min Max
well this governor makes use of only min & maximum frequency based on workload... no intermediate frequencies are used.
8: 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.
9: InteractiveX Governor:
Created by kernel developer "Imoseyon," the InteractiveX governor is based heavily on the Interactive governor, enhanced with tuned timer parameters to better balance battery vs. performance. The InteractiveX governor's defining feature, however, is that it locks the CPU frequency to the user's lowest defined speed when the screen is off.
10: Smartass
Is based on the concept of the interactive governor.
I have always agreed that in theory the way interactive works – by taking over the idle loop – is very attractive. I have never managed to tweak it so it would behave decently in real life. Smartass is a complete rewrite of the code plus more. I think its a success. Performance is on par with the “old” minmax and I think smartass is a bit more responsive. Battery life is hard to quantify precisely but it does spend much more time at the lower frequencies.
Smartass will also cap the max frequency when sleeping to 352Mhz (or if your min frequency is higher than 352 – why?! – it will cap it to your min frequency). Lets take for example the 528/176 kernel, it will sleep at 352/176. No need for sleep profiles any more!"
11: SmartassV2:
Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.
12: Scary
A new governor wrote based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance. It will give the same performance as conservative right now, it will get tweaked over time.
13: 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.
14: Smoothass:
The same as the Smartass “governor” But MUCH more aggressive & across the board this one has a better battery life that is about a third better than stock KERNEL
15: Brazilianwax:
Similar to smartassV2. More aggressive ramping, so more performance, less battery
16: SavagedZen:
Another smartassV2 based governor. Achieves good balance between performance & battery as compared to brazilianwax.
17: Lazy:
This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.
18: Lionheart:
Lionheart is a conservative-based governor which is based on samsung's update3 source.
The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
19: LionheartX
LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.
20: Intellidemand:
Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors)
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.
21: Hotplug Governor:
The Hotplug governor performs very similarly to the OnDemand governor, with the added benefit of being more precise about how it steps down through the kernel's frequency table as the governor measures the user's CPU load. However, the Hotplug governor's defining feature is its ability to turn unused CPU cores off during periods of low CPU utilization. This is known as "hotplugging."
22: BadAss Governor:
Badass removes all of this "fast peaking" to the max frequency. On a typical system the cpu won't go above 918Mhz and therefore stay cool and will use less power. To trigger a frequency increase, the system must run a bit @ 918Mhz with high load, then the frequency is bumped to 1188Mhz. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 1-2 seconds, depending on the load your system is experiencing)
Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1188Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
23: Wheatley:
Building on the classic 'ondemand' governor is implemented Wheatley governor. The governor has two additional parameters:
target_residency - The minimum average residency in µs which is considered acceptable for a proper efficient usage of the C4 state. Default is 10000 = 10ms.
allowed_misses - The number sampling intervals in a row the average residency is allowed to be lower than target_residency before the governor reduces the frequency. This ensures that the governor is not too aggressive in scaling down the frequency and reduces it just because some background process was temporarily causing a larger number of wakeups. The default is 5.
Wheatley works as planned and does not hinder the proper C4 usage for task where the C4 can be used properly .
For internet browsing the time spend in C4 has increased by 10% points and the average residency has increased by about 1ms. I guess these differences are mostly due to the different browsing behaviour (I spend the last time more multi-tabbing). But at least we can say that Wheatley does not interfere with the proper use of the C4 state during 'light' tasks. For music playback with screen off the time spend in C4 is practically unchanged, however the average residency is reduced from around 30ms to around 18ms, but this is still more than acceptable.
So the results show that Wheatley works as intended and ensures that the C4 state is used whenever the task allows a proper efficient usage of the C4 state. For more demanding tasks which cause a large number of wakeups and prevent the efficient usage of the C4 state, the governor resorts to the next best power saving mechanism and scales down the frequency. So with the new highly-flexible Wheatley governor one can have the best of both worlds.
Obviously, this governor is only available on multi-core devices.
24: Lulzactive:
Lulzactive:
This new find from Tegrak is based on Interactive & Smartass governors and is one of the favorites.
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency.
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
25: Pegasusq/Pegasusd
The Pegasus-q / d is a multi-core based on the Ondemand governor and governor with integrated hot-plugging.
Ongoing processes in the queue, we know that multiple processes can run simultaneously on. These processes are active in an array, which is a field called "Run Queue" queue that is ongoing, with their priority values arranged (priority will be used by the task scheduler, which then decides which process to run next).
To ensure that each process has its fair share of resources, each running for a certain period and will eventually stop and then again placed in the queue until it is your turn again. If a program is terminated, so that others can run the program with the highest priority in the current queue is executed.
26: hotplugx
It 'a Hotplug modified and optimized for the suspension in off-screen
27: AbissPlug
It 'a Governor derived hotplug, it works the same way, but with the changes in savings for a better battery.
28: MSM DCVS
a very efficient and wide range of Dynamic Clock and
Voltage Scaling (DCVS) which addresses usage models from
active standby to mid and high level processing requirements.
A Krait CPU can smoothly scale from low power, low
leakage mode to blazingly fast performance.
Believe it's a governor that is mfg'd by qualcomm to utilize new on chip features.
MSM is the prefix for the SOC (MSM8960) and DCVS is Dynamic Clock and Voltage Scaling. Makes sense, MSM-DCVS
29: IntelliActive
Based off Google's Interactive governor with the following enhancements:
1. self-boost capability from input drivers (no need for PowerHAL assist)
2. two phase scheduling (idle/busy phases to prevent from jumping directly to max freq
3. Checks for offline cpus and short circuits some unnecessary checks to improve code execution paths
30: Adaptive
This driver adds a dynamic cpufreq policy governor
designed for latency-sensitive workloads and also for demanding
performance.
This governor attempts to reduce the latency of clock
increases so that the system is more responsive to
interactive workloads in loweset steady-state but to
to reduce power consumption in middle operation level level up
will be done in step by step to prohibit system from going to
max operation level.
31: Nightmare
A PegasusQ modified, less aggressive and more stable. A good compromise between performance and battery.
In addition to the SoD is a prevention because it usually does not hotplug.
32: ZZmove
ZZmove Governor optimized for low power consumption with the screen off, with particular attention to the limitation of consumption applications in the background with the screen off, such as listening to music. It has three settings: battery saver, balanced and performance. In addition to a performance boost, there is also the governor zzmove optimized.
I/O Scheduler: Thread:I/O Scheduler explained
The Scheduler is an algorithm that, given a set of requests for access to a resource, establishing a temporal order for the execution of such requests, favoring those that meet certain criteria in order to optimize access to that resource.
The difference between the various scheduler is the focus on certain criteria rather than on others.
The choice of a given scheduler does not produce visible changes so as to the choice of the governor, but still provides some improvements.
As usual schedulers are personally tested to find one that best suits your needs.
Deadline
It aims to provide a deadline, a deadline for all requests in order to avoid undesirable phenomena such as the "starvation" or the eternal waiting for some requests that occurs when one or more background processes are left indefinitely in the queue the ready, because there is always at least one of the highest priority ready process.
V (r)
The next request is performed according to the distance from the last request. In the network running good opinions about this scheduler.
No-op
Push all requests in a single queue simply by their arrival order, grouping together those contiguous.
SIO
E 'the scheduler simpler, does not make any type of sort, is intended only for the purpose of obtaining a low-latency, ie to reduce the amount of time that elapses between the instant at which the request is generated and that in which the request is satisfied.
CFQ
Order requests of different processes in queues for each queue type and assigns a specific interval of time whose duration depends on the priorities assigned to processes. Can be considered the Ondemand the scheduler, the scheduler is in fact more balanced, doing its job in an honest manner.
BFQ
It 's based on CFQ but, instead of the intervals of time, assigns a part of the bandwidth of the disc to each process running in a proportional manner.
Anticipatory
Order requests based on criteria predictive, that puts the demands paused for a short period of time in anticipation that more of this to come to aggregate them.
ADAPTIVE ANTICIPATORY SCHEDULER
For the anticipatory scheduler, we scale up the anticipation timeout (antic expire) using the latency scaling factor over time. When the virtual disk latencies are low a small scaling of the timeout is sucient to prevent deceptive idleness, whereas when the latencies are high a larger scaling of the timeout value may be required to achieve the same. Note that such dynamic setting of the timeout value ensures that we attain a good trade-o between throughput (lost due to idling) and deceptive idleness mitigation. Setting a high value for the scaling factor (increasing idling time) only happens when the disk service latencies themselves are higher. This may not necessarily cause a signicant loss in throughput, because submitting a request from another process instead of idling is not going to improve throughput if the virtual disk itself does not get any faster than it is at the current period. A higher anticipation timeout might also be capable of absorbing process scheduling eects inside the VM. The results for the adaptive anticipatory scheduler are shown in Figure 2. The read time with our modied implementation (third bar in the dierent scheduler combinations) shows that it is possible to mitigate the eects of deceptive idleness by adapting the timeout. An interesting related observation is that the level to which the improve- ment is possible varies for dierent Domain-0 schedulers; noop - 39%, anticipatory - 67% and cfq - 36%. This again points to the fact that the I/O scheduler used in Domain-0 is important for the VM's ability in enforcing I/O scheduling guarantees. Dierent Domain-0 I/O schedulers likely have a dierent service latency footprint inside the VMs, contributing to dierent levels of improvement.
ROW
Row stands for READ Over WRITE which is the main requests dispatch policy of this algorithm. The ROW IO scheduler was developed with the mobile devices needs in mind. In mobile devices we favor user experience upon everything else, thus we want to give READ IO requests as much priority as possible. In mobile devices we won't have as much parallel threads as on desktops. Usually it's a single thread or at most 2 simultaneous working threads for read & write. Favoring READ requests over WRITEs decreases the READ latency greatly.
The main idea of the ROW scheduling policy is: If there are READ requests in pipe - dispatch them but don't starve the WRITE requests too much. Bellow you'll find a small comparison of ROW to existing schedulers. The test that was run for these measurements is parallel read and write.
FIOS
Flash-based solid-state drives (SSDs) have the potential to eliminate the I/O bottlenecks in data-intensive applications However the large performance discrepancy between Flash reads and writes introduces challenges for fair resource usage. Further, existing fair queuing and quanta-based I/O schedulers poorly manage the I/O anticipation for Flash I/O fairness and efficiency. Some also suppress the I/O parallelism which causes substantial performance degradation on Flash. This paper develops FIOS, a new Flash I/O scheduler that attains fairness and high efficiency at the same time. FIOS employs a fair I/O time-slice management with mechanisms for read preference, parallelism, and fairness-oriented I/O anticipation. Evaluation demonstrates that FIOS achieves substantially better fairness and efficiency compared to the Linux CFQ scheduler, the SFQ(D) fair queuing scheduler, and the Argon quanta-based scheduler on several Flash-based storage devices (including a CompactFlash card in a low-power wimpy node). In particular, FIOS reduces the worst-case slowdown bya factor of 2.3 or more when the read-only SPECweb workload runs together with the write-intensive TPC
Can't wait to try this out on my t700
You might want to amend your OP. If you study the source code a little more and try understand things. You'll find there are no (actual) A7 100 MHz. A7 cores freq are doubled 100-650 (become 200-1300) MHz. A15 cores 800-1900+. Samsung have done it this way for IKS to work easily.
Some CPU control apps will just read the table but not able to differentiate between the A7 and A15 cores, and just display what's read from the frequency table.
You've made a good start, but 99% over those governors aren't suitable and/or optimized for Exynos. A "shotgun" approach isn't always the best way, but hey, this is your toy.
UpInTheAir said:
You might want to amend your OP. If you study the source code a little more and try understand things. You'll find there are no (actual) A7 100 MHz. A7 cores freq are doubled 100-650 (become 200-1300) MHz. A15 cores 800-1900+. Samsung have done it this way for IKS to work easily.
Some CPU control apps will just read the table but not able to differentiate between the A7 and A15 cores, and just display what's read from the frequency table.
You've made a good start, but 99% over those governors aren't suitable and/or optimized for Exynos. A "shotgun" approach isn't always the best way, but hey, this is your toy.
Click to expand...
Click to collapse
Now I understand that a little bit more. Because I added first a 100MHz support and added all stuff to get it work and than, it displayed me 50MHz and I thought, what the heck is going wrong here?
So I removed it again. Thank you for helping out here.
Suitable are they, but optimized not at the moment. You know, otherwise I wont have work left
And that's also why I call it a beta version at the moment.
Tkkg1994 said:
Now I understand that a little bit more. Because I added first a 100MHz support and added all stuff to get it work and than, it displayed me 50MHz and I thought, what the heck is going wrong here?
So I removed it again. Thank you for helping out here.
Suitable are they, but optimized not at the moment. You know, otherwise I wont have work left
And that's also why I call it a beta version at the moment.
Click to expand...
Click to collapse
No, a lot are not suitable, as they are written for krait SoC (4 main cores), just like intelli-plug etc. I found they were more of a hassle and eroded kernel stability, hence I never committed the changes for release. You might find otherwise, so no harm to try. Can be fun, and also a headache too
Snapdragon 810 will be using big.LITTLE architecture same as Exynos, so hopefully faux will port some of his work over. Although it will be HMP, maybe we can adapt to our IKS kernel.
UpInTheAir said:
No, a lot are not suitable, as they are written for krait SoC (4 main cores), just like intelli-plug etc. I found they were more of a hassle and eroded kernel stability, hence I never committed the changes for release. You might find otherwise, so no harm to try. Can be fun, and also a headache too
Snapdragon 810 will be using big.LITTLE architecture same as Exynos, so hopefully faux will port some of his work over. Although it will be HMP, maybe we can adapt to our IKS kernel.
Click to expand...
Click to collapse
Nobody says that we can't port it to 8 cores you know, it is a lot of work for sure, but not impossible.
I barely had problems with the governors, more with intelliplug.
But I think it is good that we don't have the same opinion.
Otherwise we would have 2 similar kernels here.
Tkkg1994 said:
Nobody says that we can't port it to 8 cores you know, it is a lot of work for sure, but not impossible.
I barely had problems with the governors, more with intelliplug.
But I think it is good that we don't have the same opinion.
Otherwise we would have 2 similar kernels here.
Click to expand...
Click to collapse
I don't think you understand me yet. We use IKS and 4 cores at once big.LITTLE . NOT HMP (all cores running). If you study the governors and what exactly the frequency/cores are actually doing in real time, you will find out and learn from it ... Just because something compiles and are able to switch between variables, does not make it compatible.
I never said or implied that anything was impossible, but you need to re-write (not adapt) a lot of code. In effect, create a "new" governor. This is fact, not my opinion
Best of luck with your project, keep at it !
UpInTheAir said:
I don't think you understand me yet. We use IKS and 4 cores at once big.LITTLE . NOT HMP (all cores running). If you study the governors and what exactly the frequency/cores are actually doing in real time, you will find out and learn from it ... Just because something compiles and are able to switch between variables, does not make it compatible.
I never said or implied that anything was impossible, but you need to re-write (not adapt) a lot of code. In effect, create a "new" governor. This is fact, not my opinion
Best of luck with your project, keep at it !
Click to expand...
Click to collapse
I read the wiki article
I think our Exynos5 5420 use HMP and can use all cores together if it uses it?
I was talking about the intelli-plug stuff not the governors. I hope samsung will release a S6 with exynos (only) and than we will get more support.
If you want to talk with me (and yes I like to) than PM?
Tkkg1994 said:
I read the wiki article
I think our Exynos5 5420 use HMP and can use all cores together if it uses it?
I was talking about the intelli-plug stuff not the governors. I hope samsung will release a S6 with exynos (only) and than we will get more support.
If you want to talk with me (and yes I like to) than PM?
Click to expand...
Click to collapse
Keep reading and learning Particularly what IKS is and does. Please don't take this the wrong way, this is relevant and you really need to learn how the basics of our 5420 kernel actually work.
There have been test HMP for Exynos 5420, BUT, no Android powered Exynos 5420 is ever capable of HMP. AndreiLux has explained why in various posts.
HMP kernels (such as I'm using with my Note Edge Skyhigh kernel) is completely different, but some things might be adapted with little work.
I just don't have the time to answer or clarify every single question (I don't pretend to always know), even by PM. It's just a matter of reading, learning, and trial by many errors.
UpInTheAir said:
Keep reading and learning Particularly what IKS is and does. Please don't take this the wrong way, this is relevant and you really need to learn how the basics of our 5420 kernel actually work.
There have been test HMP for Exynos 5420, BUT, no Android powered Exynos 5420 is ever capable of HMP. AndreiLux has explained why in various posts.
HMP kernels (such as I'm using with my Note Edge Skyhigh kernel) is completely different, but some things might be adapted with little work.
I just don't have the time to answer or clarify every single question (I don't pretend to always know), even by PM. It's just a matter of reading, learning, and trial by many errors.
Click to expand...
Click to collapse
I'm doing this the first time, so hopefully you and the others will understand that. I hope you can excuse me I have to learn many things I know that.
See you soon!
Changelog V1.1:
-Temporarly removed Intelli-Plug
-Added voltcontroll for CPU
-Added Stweaks support and Stweaks app (all credits and stuff goes to @googy_anas and @Kryten2k35
-Hell lot of improvements
-GPU overclock to 733MHz
-CPU overclock to 2.1GHz (sorry, I couldn't get it stable )
-for more what I had done, visit here: Commits IronKernel
Tkkg1994 said:
-Temporarly removed Intelli-Plug
-Added voltcontroll for CPU
-Added Stweaks support and Stweaks app (all credits and stuff goes to @googy_anas and @Kryten2k35
-Hell lot of improvements
-GPU overclock to 733MHz
-CPU overclock to 2.1GHz (sorry, I couldn't get it stable )
-for more what I had done, visit here: Commits IronKernel
Click to expand...
Click to collapse
Kernel update is awesome I love the GPU OC seems stable also went to 2GHZ CPU OC no issues I would go to 2.1GHZ but I think it may get unstable
TAPATALKED WITH MY XPE R IA Z
My Z3 app Ports to all devices
danny19901 said:
Kernel update is awesome I love the GPU OC seems stable also went to 2GHZ CPU OC no issues I would go to 2.1GHZ but I think it may get unstable
TAPATALKED WITH MY XPE R IA Z
My Z3 app Ports to all devices
Click to expand...
Click to collapse
Better let it at 2.0 GHz. Best for stability! Great you enjoy it
danny19901 said:
Kernel update is awesome I love the GPU OC seems stable also went to 2GHZ CPU OC no issues I would go to 2.1GHZ but I think it may get unstable
TAPATALKED WITH MY XPE R IA Z
My Z3 app Ports to all devices
Click to expand...
Click to collapse
N/A
fishdrop said:
N/A
Click to expand...
Click to collapse
Just putting N/A doesn't help much if you need help or something
New changelog:
IronKernel V1.2 01.03.2015:
- Built with latest toolchain (2015.02) by christopher83
- Use frandom from now
- Enable dynamic page writeback with earlysuspend
- Better battery charging control (kernel and stweaks)
- Auto install the right sTweaks version
- Reduce overestimating rq->avg_idle
- Optimize find_busiest_queue()
- Some CPUfreq optimizations
- Dynamic sync control with earlysuspend support
- Lowmemorykiller: implement task's adj rbtree
- Check free memory when tasks switch to background
- Dynamic FSync
- SOO Much more but I don't remember all
- After flashing the kernel, it will be successfull, but then show an error (becaus of mounting partition) don't worry, just reboot. Just ignore it
THANKYOU !!! Why is it that most other developers can't use common sense and say right up front that their work will kill Knox.
hillg001 said:
THANKYOU !!! Why is it that most other developers can't use common sense and say right up front that their work will kill Knox.
Click to expand...
Click to collapse
This won't actually trip Knox counter...
By installing a custom recovery (pre-requisite to install kernel.zip) will already trip the counter, and not within the scope of most Developers concern. Wouldn't the user already have tripped the counter prior to flashing the kernel? Think about it. .. Having the warning in OP doesn't hurt though
Team-M8 AOSP kernel
What is it?
This project was initially based on Unicornblood kernel from DirtyUnicorns (@smac0628), which is current with linux 3.4.110. She and I are working together on this project to make a better experience for users.
We aim to include as many tweaks as possible to this AOSP kernel while maintaining stability. We also make extensive efforts to properly give credit the authors of the many features we've added (picked only the original author's commits, instead of kanging entire files).
Settings have intentionally been chosen which favor battery life over performance. With that said, you can definitely squeak out a little better battery life, or you can have some fun and get killer performance instead.
Features:
Hotplugs (only enable one!, more on the way):
IntelliPlug
Great balance between battery life and performance. It is also a popular hotplug driver from faux123.
MSM Hotplug
Great battery life, a custom qualcomm based hotplugging driver by myflux. It is a popular choice for many users.
Alucard Hotplug
A great hotplugging driver by Alucard. It is known to be very battery friendly on devices.
Zen Decision
ZEN only onlines all cores when screen is on, it also takes thermal events into account and wont online any core back, if you're under 15% battery, or currently have a thermal event because of heat. So in the end it isn't a "real" hotplug driver, because it doesnt have any code for active hot plugging in it. That means you can't change its behavior.
Hybrid Hotplug/Governor (Disable all hotplugs if you're going to use this)
zzmoove
The ZZmoove Governor by ZaneZam is optimized for low power consumption when the screen off, with particular attention to the limitation of consumption applications in the background with the screen off, such as listening to music. The unique feature with ZZmoove is that it has predefined profiles and allows profile switching. This governor is still a WIP as the developer is constantly giving updates! Here are the available profiles:
Quote:
1) for Default (set governor defaults)
2) for Yank Battery -> old untouched setting (a very good battery/performance balanced setting DEV-NOTE: highly recommended!)
3) for Yank Battery Extreme -> old untouched setting (like yank battery but focus on battery saving)
4) for ZaneZam Battery -> old untouched setting (a more 'harsh' setting strictly focused on battery saving DEV-NOTE: might give some lags!)
5) for ZaneZam Battery Plus -> NEW! reworked 'faster' battery setting (DEV-NOTE: recommended too! )
6) for ZaneZam Optimized -> old untouched setting (balanced setting with no focus in any direction DEV-NOTE: relict from back in the days, even though some people still like it!)
7) for ZaneZam Moderate -> NEW! setting based on 'zzopt' which has mainly (but not strictly only!) 2 cores online
8) for ZaneZam Performance -> old untouched setting (all you can get from zzmoove in terms of performance but still has the fast down scaling/hotplugging behaving)
9) for ZaneZam InZane -> NEW! based on performance with new auto fast scaling active. a new experience!
10) for ZaneZam Gaming -> NEW! based on performance with new scaling block enabled to avoid cpu overheating during gameplay
11) for ZaneZam Relax -> NEW! based on moderate (except hotplug settings) with relaxed sleep settings
(since version 0.9 beta4: cpu temperature threshold of 65°C enabled if exynos4 cpu temperature reading support was compiled with the governor)
Click to expand...
Click to collapse
CPU Governors (more on the way):
A CPU governor in Android controls how the CPU raises and lowers its frequency in response to the demands the user is placing on their device. Governors are especially important in smartphones and tablets because they have a large impact on the apparent fluidity of the interface and the battery life of the device over a charge.
Abyssplugv2
AbyssPlugv2 is a rewrite of the original CPU governor. It also fixes the problem where the governor is set only for the first core, but now governs all cores right from whatever utility you use. There have been comments on the lack of stability with this governor.
alucard
A favourite choice and one of the original governors that Alucard_24 made. Alucard is based on ondemand but has been heavily tweaked to bring better battery life and performance. It has been known to be battery friendly without sacrificing much performance.
badass
Badass removes all of this "fast peaking" to the max frequency. To trigger a frequency increase, the system must run a bit with high load, then the frequency is bumped. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 1-2 seconds, depending on the load your system is experiencing)
Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu to max frequency, If the gpu is crushed under load, badass will lift the restrictions to the cpu
dancedance
Based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance. It is a performance focused governor but also blends with some battery savings.
darkness
It's based on nightmare but more simple and fast, basic configs but very complex structure. It is an updated nightmare gov and improved stability, so far it is quite stable in tests
elementalx
If you are an owner of a nexus device, you probably have heard of a governor named ElementalX. Named after the kernel, elementalX is based on interactive but with some additional performance tweaks. This governor focuses on performance and not battery savings!
hellsactive
A heavily modified intelliactive governor by @hellsgod that has been tweaked to improve battery life. Hellsactive is less aggressive compared to intelliactive so the battery life will be more like the original interactive.
intelliactive
Based off Google's Interactive governor with the following enhancements:
1. self-boost capability from input drivers (no need for PowerHAL assist)
2. two phase scheduling (idle/busy phases to prevent from jumping directly to max freq
3. Checks for offline cpus and short circuits some unnecessary checks to improve code execution paths. Therefore, it avoids CPU hotplugging.
This is a more performance oriented CPU governor that still has great battery life like the original Interactive.
intellidemand
Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode.
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) by behaving like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.
intellimm
A rewrite of the old Min Max governor and has 3 cpu states: Idle, UI and Max. Intelliminmax (intellimm) governor is designed to work with the newer SOCs with fixed voltage rails (ie MSM8974+ SOCs). It is designed to work within those fixed voltage ranges in order to maximize battery performance while creating a smooth UI operations. It is battery friendly and spends most of the time at lower frequencies.
nightmare
A PegasusQ modified, less aggressive and more stable. A good compromise between performance and battery. In addition to the SoD is a prevention because it usually does not hotplug.
ondemand
Ondemand is one of the original and oldest governors available on the linux kernel. When the load placed on your CPU reaches the set threshold, the governor will quickly ramp up to the maximum CPU frequency. It has excellent fluidity because of this high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand was commonly chosen by smartphone manufacturers in the past because it is well-tested and reliable, but it is outdated now and is being replaced by Google's Interactive governor.
smartmax
Ondemand is one of the original and oldest governors available on the linux kernel. When the load placed on your CPU reaches the set threshold, the governor will quickly ramp up to the maximum CPU frequency. It has excellent fluidity because of this high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand was commonly chosen by smartphone manufacturers in the past because it is well-tested and reliable, but it is outdated now and is being replaced by Google's Interactive governor.
yankactive
A slightly modified interactive based governor by Yank555.lu. It has battery tweaks added onto it so expect better battery life! Based on user reports, this governor behaves more battery friendly than the original interactive governor without sacrificing performance.
yankdemand
Full stock (JB) ondemand governor with changed default tunable values aimed at lower battery consumption
interactive
Google's own take on a CPU governor. Interactive scales the clockspeed over the course of a timer set by the kernel developer (or user). 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. Because of this timer, Interactive is also better prepared to utilize intermediate clockspeeds that fall between the minimum and maximum CPU frequencies. It is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.
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.
Interactive is the default governor of choice for today's smartphone and tablet manufacturers.
performance
The performance governor locks the phone's CPU at maximum frequency.
The descriptions in this post were created by @gsstudios and can be found here:
http://forum.xda-developers.com/general/general/ref-to-date-guide-cpu-governors-o-t3048957
Voltage Control (UV/OV)
OC to 2880 MHz
UC to 268 MHz
Set Max frequency in Screen-Off state
As the name says, you get to set a different governer when screen is off. This will override what you chose in the governer choice. Pretty nifty arrangement so that you can flip from a performance governer when on screen and a power save governer when screen is off. This feature was added to the kernel because it was either the developers intention or by popular demand.
Force Fastcharge
A. When set, the phone will charge off of the PC USB ports as if it is connected to wall outlet. This does turn off your access to the phone internal memory and SD card. If you want to access the internal storage on PC then you have to turn this off.
NOTE – Weather to turn on or off, has to be done before connecting to PC. Changing this after connecting has no effect.
Kexec hardboot patch (can be flashed as primary bootimage in multirom)
GPU Governors:
cpubw_hwmon
A hardware (HW) monitor based governor that attempts to determine bandwidth needed by CPU and other hardware. This is a unique GPU governor that is highly customisable, however it is known to be unstable on some devices.
msm_cpufreq
The MSM CPUfreq governor determines the CPU to DDR bandwidth vote based on the current CPU frequency of all the active CPUs. In other words, this governor scales based on CPU usage which could mean more performance.
msm-adreno-tz
The default GPU governor used by qualcomm for their adreno GPUs. It is more performance orientated than ondemand therefore it gives better performance in games but less battery life.
userspace
This governor basically allows the user is able to set a desired frequency for the GPU to run at.
powersave
Like the CPU governor, this keeps your GPU running at the lowest possible frequency. Best battery life, extreme lag in games.
performance
As the name suggests, this keeps your GPU running at the max frequency. This is a governor if you want the best possible experience in games but you don't care about your battery life.
simple_ondemand
KCal display adjustments
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 minimise time wasted by hard disk seeks.
- To prioritise 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.
bfq
Instead of time slices allocation by CFQ, BFQ assigns budgets. Disk is granted to an active process until it's budget (number of sectors) expires. BFQ assigns high budgets to non-read tasks. Budget assigned to a process varies over time as a function of it's behavior.
Benefits:
- Has a very good USB data transfer rate.
- The best scheduler for playback of HD video recording and video streaming (due to less jitter than CFQ Scheduler, and others)
- Regarded as a very precise working Scheduler
- Delivers 30% more throughput than CFQ
- Being constantly updated
- Good for multitasking, more responsive than CFQ
Disadvantages:
- Not the best scheduler for benchmarks
- Higher budgets that were allocated to a process that can affect the interactivity and bring with it increased latency.
cfq
Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process. V2 of CFQ has some fixes which solves process' i/o starvation and some small backward seeks in the hope of improving responsiveness.
Benefits:
- Has a well balanced I / O performance
- Excellent on multiprocessor systems
- Regarded as a stable I/O scheduler
- Good for multitasking
Disadvantages:
- Some users report media scanning takes longest to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
- Jitter (worst case delay) can sometimes be very high because the number of competing with each other process tasks
- Under constant load, the phone will experience increased I / O latency due to the way how the scheduler tries to create 'fairness'
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.
Benefits:
- Nearly a real-time scheduler.
- Excels in reducing latency of any given single I/O
- Best scheduler for database access and queries.
- Does quite well in benchmarks, most likely the best
- Like noop, a good scheduler for solid state/flash drives
Disadvantages:
- If the phone is overloaded, crashing or unexpected closure of processes can occur
fifo
First in First Out Scheduler. As the name says, it implements a simple priority method based on processing the requests as they come in.
Benefits:
- Serves I/O requests with least number of cpu cycles.
- Is suitable for flash drives because there is no search errors
- Good data throughput on db systems
Disadvantages:
- Reducing the number of CPU cycles corresponds to a simultaneous decline in performance
- Not very good at multitasking
fiops
This new I/O scheduler is designed around the following assumptions about Flash-based storage devices: no I/O seek time, read and write I/O cost is usually different from rotating media, time to make a request depends upon the request size, and high through-put and higher IOPS with low-latency. FIOPS (Fair IOPS) ioscheduler tries to fix the gaps in CFQ. It's IOPS based, so it only targets for drive without I/O seek. It's quite similar like CFQ, but the dispatch decision is made according to IOPS instead of slice.
Benefits:
- Achieves high read and write speeds in benchmarks
- Faster app launching time and overall UI experience
- Good battery life
Disadvantages:
- Not very common in most kernels
- Not the most responsive IO scheduler (Can make phone lag)
- Not good at heavy multitasking
noop
Inserts all the incoming I/O requests to a First In First Out queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like our flash drives). Advantage here is that flash drives does not require reordering of multiple I/O requests unlike in normal hard drives.
Benefits:
- Serves I/O requests with least number of cpu cycles.
- Is suitable for flash drives because there is no search errors
- Good data throughput on db systems
- Good battery life
- Does great in benchmarks
- Also a very reliable IO scheduler
Disadvantages:
- Reducing the number of CPU cycles corresponds to a simultaneous decline in performance
- Not the most responsive I/O scheduler
- Not very good at multitasking (especially heavy workloads)
row
The ROW IO scheduler was developed with the mobile devices needs in mind. In mobile devices, we favor user experience upon everything else, thus we want to give READ IO requests as much priority as possible. In mobile devices we won't have as much parallel threads as on desktops. Usually it's a single thread or at most 2 simultaneous working threads for read & write. Favoring READ requests over WRITEs decreases the READ latency greatly. The main idea of the ROW scheduling policy is: If there are READ requests in pipe - dispatch them but don't starve the WRITE requests too much.
Benefits:
- Faster UI navigation and better overall phone experience
- Faster boot times and app launch times
Disadvantages:
- Not great for heavy multitasking
- Slower write speeds
sio
Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. Sio is a mix between noop & deadline. No reordering or sorting of requests.
Benefits:
- It is simple and stable.
- Minimized starvation for inquiries
- Good battery life
Disadvantages:
- Slow random write speeds on flash drives as opposed to other schedulers.
- Sequential read speeds on flash drives are not as good as other IO schedulers
tripndroid
A new I/O scheduler based on noop, deadline and vr and meant to have minimal overhead. Made by TripNRaVeR
Benefits:
- Great at IO performance and everyday multitasking
- Well rounded and efficient IO scheduler
- Very responsive I/O scheduler (Compared to FIOPS)
Disadvantages:
- Not found in all kernels
- Performance varies between different devices (Some devices perform really well)
vr
Unlike other scheduling software, synchronous and asynchronous requests are not handled separately, but it will impose a fair and balanced within this deadline requests, that the next request to be served is a function of distance from the last request.
Benefits:
- Generally excels in random writes.
Disadvantages:
- Performance variability can lead to different results (Only performs well sometimes)
- Sometimes unstable and unreliable
zen
ZEN scheduler is based on the VR Scheduler. It's an FCFS (First come, first serve) based algorithm, but it's not strictly FIFO. ZEN does not do any sorting. It uses deadlines for fairness, and treats synchronous requests with priority over asynchronous ones. Other than that, it's pretty much the same as no-op blended with VR features.
Benefits:
- Well rounded IO Scheduler
- Very efficient IO Scheduler
- More stable than VR, more polished
Disadvantages:
- Performance variability can lead to different results (Only performs well sometimes)
- Not found in all kernels
LED Control
Z-Ram
Q. What is ZRAM?
A. ZRAM basically compresses unused apps within the system RAM. This allows the system to swap less needed processes to the zram partition for faster access at a later time, instead of killing them. This does take up some of your ram though, so I imagine that the value you are setting is determining exactly what percentage of your ram that the zram partition is allotted.
FSYNC
TCP Congestion Algorithms:
Congestion control strategies (or algorithms) are used by TCP, the data transmission protocol used by many Internet applications. The main goal of a TCP algorithm is to avoid sending more data than the network is capable of transmitting, that is, to avoid causing network congestion. Different algorithms respond differently to network loads, but they are all based on the same principle of avoiding network congestion.
Things to look out for in TCP algorithms include (but not exclusively):
- Download/Upload speeds - The higher the number, the better
- Latency - The lower the number, the better
bic
Binary Increase Congestion control (BIC):
BIC is optimized for high speed networks with high latency: so-called "long fat networks". It has a unique congestion window (cwnd) algorithm. This algorithm tries to find the maximum where to keep the window at for a long period of time, by using a binary search algorithm.
lp
Low Priority (LP):
A distributed algorithm whose goal is to utilize only the excess network bandwidth as compared to the "fair share" of bandwidth as targeted by TCP. The key mechanisms unique to TCP-LP congestion control are the use of one-way packet delays for early congestion indications and a TCP-transparent congestion avoidance policy.
highspeed
High speed (HSTCP):
High Speed TCP (HSTCP) is a new congestion control algorithm protocol for TCP. Standard TCP performs poorly in networks with a large bandwidth delay product. It is unable to fully utilize available bandwidth. HSTCP makes minor modifications to standard TCP's congestion control mechanism to overcome this limitation.
htcp
Hamilton TCP (HTCP):
HTCP is designed for high-speed, long distance networks that increases aggressiveness as the time since the previous loss increases. It is thought to be a more efficient TCP algorithm than BIC and HSTCP.
hybla
Hybla:
Penalizes connections that use satellite radio. Not usually used with phones.
illinois
Illinois is designed for high-speed, long-distance networks. A sender side modification to the standard TCP congestion control algorithm, it achieves a higher average throughput than the standard TCP and allocates the network resource fairly as the standard TCP.
scalable
Scalable calls for congestion window to be halved for each packet lost. Effectively, this process keeps halving the throughput until packet loss stops. Once the packet loss subsides, slow start kicks in to ramp the speed back up.
vegas
One of the smoothest TCP algorithms(next to cubic), it increases the timeout delay for packets, which allows more to be received, but at a higher rate. It also has set timeouts, which helps with speed because it's constantly being refreshed.
veno
Veno is closely related to Vegas, it is a combination of Vegas and Reno in order to enhance TCP performance over Wireless networks.
westwood
A newer version of Reno, and another commonly used one. It controls parameters better, helping out streaming and overall quality of browsing the internet. One of the most 'fair' algorithms out there, and is one of the most efficient algorithms to date.
yeah
A high speed TCP congestion control algorithm which uses a mixed loss/delay approach to calculate congestion windows. Its purpose is to target high efficiency, fairness, and minimizing link loss while keeping network elements load as low as possible.
reno
Basically the same as Tahoe, but if 3 of the same packets are received, it will halve the window, instead of reducing it to one. It changes the slow start threshold equal to that of the congestion window.
cubic
One of the best, most recommended TCP options available. Less aggressive, Inflects the windows prior to the event. Used in Linux.
Sweep to Wake, Sweep to Sleep, Double-tap to Wake (for these features, please build from branch master-s2w)
How do you get it?
That's a hard question to answer, surprisingly. You're free to flash the zip file below, but it's only the zImage. While this zip will include nearly everything you'll want or need, what you need for OC/UC is part actually of the dts. The dts is another piece that gets packed together with the zImage to make the boot.img. Unfortunately there's all sorts of ramdisk & permissions issues which can be caused by flashing a boot.img, so it's not recommended.
Please make a nandroid before doing anything! Backing up the boot partition takes all of a second and 16 megs of storage. Just do it! Also, do not hold us responsible for anything that happens to your device. It's worked fantastically for us, but you're flashing at your own risk.
Downloads for MM
Download for LP (no Sweep to Wake)
Download for LP (with Sweep to Wake)
The very best method of getting the kernel, is to have it compiled with the ROM itself (as with all kernels).
O.P. is a WIP. Will be adding and editing a lot, especially at first.
Special thanks to @izzaeroth for assisting with the Anykernel zip.
XDA:DevDB Information
Team-M8 AOSP kernel, Kernel for the HTC One (M8)
Contributors
fizbanrapper, smac0628, amirfida
Source Code: https://github.com/Team-M8/android_kernel_htc_msm8974/tree/master
Kernel Special Features:
Version Information
Status: Beta
Created 2015-11-10
Last Updated 2016-08-16
Want to get the most out of your kernel?
What does that mean to you? Battery savings? Performance? Balance between them?
The "most" is a difficult question to even attempt to answer. Even assuming we could define "balance between them", I still could not give you a set of settings that would work well for everyone. Not only are you all using different variants, but you're using different builds of different ROMs with different gapps packages, different apps, different usage habits, and in different areas of the country.
You really have to get an understanding of what different things do, then decide for yourself how you should customize your settings. Trial and error!
How did I get those scores on antutu? Here's a response I provided to that very question later in the thread:
fizbanrapper said:
I don't recall the exact settings, but I'll give you general guidelines.
When I test any kernel, I think it's critical to level the playing field as much as possible. I run it on my primary ROM with PAC ROM. I run few apps on it and disable anything that might sync in the background.
Disable all hotplugs and thermal drivers. Make sure your phone has been booted for a good 5 minutes so that your thermal temps have had a chance to come back down. Since you've disabled your thermal drivers, there's a decent chance you'll get a force reboot half way through the test if you're starting off with a high cpu temp already.
Used one of the zzmoove governor profiles. I think I used zram and disabled fsync too.
If my memory serves me right, this got me to back to back scores of 52776 and 52713.
Click to expand...
Click to collapse
Want great battery life?
Set your governor's max frequency to 268000 (yankactive is pretty good for this).
Set max frequency policy to 268000. Do the same for screen off max as well as any applicable input boost settings.
Set multicore powersaving mode to aggressive.
Choose one hotplug and choose the most conservative settings available.
Don't worry, your device won't completely listen to your request to only run at 268000 under all circumstances. Unfortunately every kernel I've ever run for this device (Team-M8, CM, Candy, DU, Slim, Blissful, Furnace, PAC, and B14ckb1rd) all disrespect my wishes! Abyssplug governor is the only notable exception here.
I'll try to provide more detailed settings when I get more time.
First
Not first! ?....oh wait...
SECOND!?
Great work getting this all together with so many sweet options!
Congrats on releasing this new kernel. I've updated the governor/scheduler guide to include missing description on Yankdemand for people who were curious
gsstudios
gsstudios said:
Congrats on releasing this new kernel. I've updated the governor/scheduler guide to include missing description on Yankdemand for people who were curious
gsstudios
Click to expand...
Click to collapse
Thanks! That was fast! I've updated the OP with your description.
I flashed this on the latest AICP (Android Ice Cold Project) and it kills my data. I'm also on Verizon if that matters...
GohanBurner said:
I flashed this on the latest AICP (Android Ice Cold Project) and it kills my data. I'm also on Verizon if that matters...
Click to expand...
Click to collapse
I've never heard of that happening g from a kernel. Could it be something else causing this? Anyone else experiencing this?
It has to be, I flash the kernel from CandyRom over it and data works again. Flash this again data doesn't work...
GohanBurner said:
It has to be, I flash the kernel from CandyRom over it and data works again. Flash this again data doesn't work...
Click to expand...
Click to collapse
It should work ok if compiled with the ROM. It's one of the downsides of the flashable zip.
Can a boot.img version of this be created? Or would that be just as good as a zip?
GohanBurner said:
Can a boot.img version of this be created? Or would that be just as good as a zip?
Click to expand...
Click to collapse
Well the boot.img would contain even more aicp-specific stuff. So if it was compiled from aicp's source, it would be fine as a boot.img.
If I compiled a boot.img from a ROM I've synced, it would cause even more compatibility issues than the zip.
I don't mind switching ROMs to use this kernel, which one are you running? I assume this will work with CM, correct?
GohanBurner said:
I don't mind switching ROMs to use this kernel, which one are you running? I assume this will work with CM, correct?
Click to expand...
Click to collapse
At the moment I'm on bliss. That's what it was compiled from. That used candy kernel though too, mostly. Let me look for a good build for you to try.
Try this
https://www.androidfilehost.com/?fid=24052804347848888
Try it without the kernel zip first, to make sure it works without it. Then go back and flash to get the updates.
Scozzar said:
What Kernel manager would you guys recommend for this kernel? I use Trickster, but it doesn't have the ability to select all of the hotplug options. With Trickster, I can only seem to choose between mp-decision or intelliplug.
Click to expand...
Click to collapse
I've been using kernel adiutor
Scozzar said:
Ah much better. I'm running all the Alucard hotplug and governor. Battery life isn't great, but I did just flash it twenty minutes ago.
Sent from my m8 using Tapatalk
Click to expand...
Click to collapse
Try zzmoove or a different hotplug. Alucard might not be the right choice for you.
@smac0628 is a current and equal contributor to this project. She's the one who put the work into Unicornblood. I'll update the OP shortly so that this is more clear.
Feel free to keep whining to @Mazda and the mods though. Though I don't think any of them care, it is entertaining.
After a lot of testing and hours of hard-work, I have developed a kernel based on the latest sources. As the name of the kernel suggests, the primary focus of the kernel is speed and performance. As a result, I have fine-tuned and optimized this kernel to perform in the best possible manner. However, I haven't missed to look into the Battery issues of the phone. A lot of effort has been made to fix unnecessary consumption of battery along with regulated CPU usage. Further, I have worked really hard to include almost all features and fixes so as to make my kernel the most feature-packed All-in-One solution.
Main Features---
Display---
Support for kCAL Colour Control v2.0 (enhances Colour Vibrance and Intensity). (available as a Screen TAB in Kernel Adiutor).
Up-to-date LiveDisplay Driver.
Support for Colour Enhancement (Updated).
Support for HotPlugs---
MSM (Fast Lane Load)
Mako
AluCard
IntelliPlug
ThunderPlug
AutoSMP (Modified and Enhanced for big.LITTLE architecture by ME )
State Helper v2.0 (Modified and Enhanced for big.LITTLE architecture by ME )
MSM mP-Decision (Bricked)
Support for Governors---
Conservative
Darkness
ElementalX
LionFish
IntelliDemand
Interactive
OnDemand
Performance
PowerSave
SmartMax
Hyper
Wheatley
YankActive
AluCard
Support for I/O Schedulers---
FIOPS
BFQ v7r8 with Hierarchical Scheduling
ROW
NOOP
DeadLine
CFQ
SIO
CPU---
Fixed High-Load Average from UnInterruptible Waits (reduces CPU-Load even more in idle state).
Overclocked CPU upto 1.7GHz (big Cluster) and 1.2GHz (LITTLE Cluster) for Extreme Performance (Modified and Enhanced by ME ).
Proper and Uniform Frequency Table Format with 200MHz Gap between each Frequency
Support for Fast-IDLING of CPU (should reduce Power-Consumption a lot).
Support for Power Efficient WorkQueue to reduce Power-Consumption (available in CPU tab of Kernel Adiutor).
GPU---
Support for ADRENO-IDLER algorithm (saves a lot of Battery by reducing GPU Frequency to minimum when there is less load).
Altered GPU-Frequency Table for more Power-Savings without noticeable decrease in Performance.
Memory---
Support for Swap, FrontSwap, and zSwap techniques (improve performance significantly when zRAM is full).
Support for Memory Compaction (improves performance).
Support for CleanCache Driver (improves I/O performance).
Support for zsmAlloc with Page-Table Mapping techniques (improve memory performance).
Support for zRAM with LZ4 compression algorithm (improves performance by saving memory).
Battery---
Support for ARCH_Power to reduce Power-Consumption and increase Battery-Life.
Support for the new PowerSuspend algorithm (improves Battery-Life).
Support for preventing unnecessary WakeLocks (improves Battery-Life). (available under the Misc. Tab of Kernel Adiutor)
Support for ThunderCharge Current Control Driver v2.1 (accelerates Charging by a large margin).
Optimizations and Tweaks---
Based on the latest sources of CyanogenMod (CM) for Yu Yureka/Yureka PLUS.
Disabled CRC-Check for upto 30% faster I/O.
Support for FRandom RNG Driver (upto 50x faster than the default one).
Compiled with UberTC 4.9.4 Optimized for 64-BIT (Uber uses the latest of every component as well as increases the Battery-Life too).
Support for Touch-Boost and CPU-Boost (Updated).
Support for Vibration Intensity Control (available in Misc. TAB of Kernel Adiutor).
Lowest Possible CPU-Usage (a lot of tweaks have been implemented system-wide).
Support for various Wake-Up Gestures including D2W.
Disabled Debug-Info (should reduce the size of the kernel making it lighter).
Support for HMP Aware and Power-Aware Task Allocation (should improve Performance and Battery-Life).
Support for Faux Sound Control v4.1 (Modified and Enhanced by ME ).
Support for a Custom Thermal Driver with Optimized Core Control v2.0 (Better Heat-Management with Flexible Controls, Modified and Enhanced by ME ).
Support for Load Shifter Mechanism (allows more Power-Savings, built by ME ).
The above mentioned features are just the main ones (many are omitted due to word limit), there are many more small technical changes done to improve the overall experience. By the way, the number written after the # symbol in the "Kernel Version" available in About Phone section, tells the number of times I have compiled the kernel. That number alone is an evidence of the amount of time, hard-work and patience I have applied in developing this kernel.
I have tried my best to make my kernel the most polished one. From minor tweaks to major improvements, everything is perfectly done. Moreover, I'll update my kernel whenever a useful feature or new sources come out so as to make you people experience the best and the latest of everything.
I encourage all the people here to try this kernel and squeeze out every bit of performance from our hot-tempered Yu Yureka/Yureka Plus.
Notes---
1. This kernel performs best when used with ROMs based on the latest sources of CyanogenMod.
2. My kernel doesn't requires any other app except for Kernel Adiutor to control the features. Therefore, you people are free to uninstall any other Kernel-Management app. #NoHassles
3. The *NEW word written after a feature indicates that this feature is NOT present in any other Kernel at the time of release.
4. The words 'Modified and Enhanced' written after any Feature indicate that I, myself, have modified that feature to make it more Efficient for our specific Device.
Installation Instructions---
1. It is recommended to clean-flash the kernel if you face any problems such as LED not blinking, unstable frequencies, etc.
2. To download the kernel, head over to the ChangeLogs and Downloads post and select the version of kernel you want.
3. To install the kernel, just flash the .zip using TWRP recovery.
Credits---
1. Google (for everything related to Android)
2. Cyanogen (for Source Code)
3. Varun Chitre (for ThunderCharge)
4. Savoca (for kCAL Colour Control v2.0)
Changelogs and Download Links---
v14.0---
For Changelog and Download Link, refer here.
Recommended Settings---
Note---
1. Use Kernel Adiutor-MOD to apply settings!
Download Link for Kernel Adiutor-MOD---
https://github.com/yoinx/kernel_adiutor/raw/master/download/app/app-release.apk
2. Always set the Apply on Boot Delay to 20 seconds or more. This is useful to avoid situations in which a certain feature malfunctions everytime after it is enabled at boot and thus results in a bootloop. Setting the delay to a higher value allows to disable that particular feature before it gets enabled.
CPU TAB---
For Balanced Performance---
1. Set Min. to 200MHz and Max. to Max. Available for both Clusters.
2. Interactive/Impulse Governor for both Clusters.
3. Enable Schedule WorkQueues Toggle.
For Battery-Saving and Less Heat---
1. Set Min. to 200MHz and Max. to 1200MHz for big Cluster.
2. Darkness/LionFish Governor for both Clusters.
3. Enable Schedule WorkQueues Toggle.
CPU HotPlugs TAB---
Use AutoSMP if you want more Battery-Life and Decent Performance with Less Heating than Stock Kernel.
State Helper---
1. Max. Core Online (Screen On) at 6 (Useful for Gamers)---
More Battery-Saving and Lesser Heating than Stock Kernel.
2. Max. Core Online (Screen On) at 4 (Useful for Normal Usage)---
Excellent Battery-Saving and Minimal Heating but Lesser Performance than Stock Kernel.
3. Max. Core Online (Screen On) at 2 (Useful for those who don't play Games or do much Browsing)---
Extreme Battery-Saving and Least Heating but much Lower Performance than Stock Kernel.
Thermal TAB---
1. Least Heating Profile---
Enable Core Control.
Temperature Throttle at 45 C.
2. Balanced Heating Profile---
Enable Core Control.
Temperature Throttle at 60 C.
3. Gaming Heating Profile---
Disable Core Control.
Temperature Throttle at 75 C.
Note---
Keep rest of the Thermal Settings at Default Values for all Profiles!
GPU TAB---
Enable Adreno IDLER.
Screen TAB---
Improved Colour Enhancement is in-built in kernel. Still, this is what I use---
LiveDisplay---Night Mode
Minimum RGB Value---32
Saturation Intensity---48
Wake Controls TAB---
As per your own preference.
Sound TAB---
As per your preference.
Battery TAB---
I don't use ThunderCharge as I feel that the stock values provided by YU charge the phone within a decent time. So, again, use as per your preference. However, using Charge Rate beyond 1250mAh may damage the hardware.
I/O Scheduler TAB---
BFQ for both Internal and External Storage.
WakeLocks TAB---
Disable all (to Save Power). However, if you face any problems, then re-enable all.
Misc Controls TAB---
Disable Android Logging.
Init.d TAB---
Enable Emulate Option.
Leave the rest TABs as they are.
Note---
In order to reset settings to default, just Disable the Apply On Boot option of the particular TAB in Kernel Adiutor and reboot the phone.
ENJOY!!!
Reserved.
Shoaib05 said:
Reserved
Click to expand...
Click to collapse
Will this kernel work on stock cm12?????
as currently I'm using Sandy kernel
And getting average battery life and performance ????
gtsfreak said:
Will this kernel work on stock cm12?????
as currently I'm using Sandy kernel
And getting average battery life and performance ????
Click to expand...
Click to collapse
Since the stock CM12 ROM is based on the older sources, I doubt that my kernel will work perfectly. However, you may try and tell me whether it works or not. It would be really helpful.
By the way, which version of Sandy Kernel are you using?
Shoaib05 said:
Since the stock CM12 ROM is based on the older sources, I doubt that my kernel will work perfectly. However, you may try and tell me whether it works or not. It would be really helpful.
By the way, which version of Sandy Kernel are you using?
Click to expand...
Click to collapse
Sandy kernel v1.5
Battery life and performance is average
gtsfreak said:
Sandy kernel v1.5
Battery life and performance is average
Click to expand...
Click to collapse
Try mine if you're unhappy with the results you're getting with your current kernel.
However, I don't think everything will work i.e., LED or Camera but you'll get better performance and Battery-Life, this I can promise.
Support for Android Marshmallow (6.0) has been added!!! Check 2nd post for Download Link!!! (thanks to Hriday Sharma for the commits!)
From now onwards, this thread will not be maintained. Head to Yu Forums to stay updated!!!
Edit---
Thread will be maintained here on XDA too.
Kernel Manager ?
Shoaib many thanks for creating this for us ! God bless you !
Hi Dev Champs !
I am a noob when it comes.to Kernel and Kernel manager. I am a user of Yu Yureka running custom CM13 rom (Created by SantoshM) and im running Velocity 2.0+.
Can you pls suggest the best Kernal Manager in ur opinion. I am using Ex Kernal Manager right now.
Can you also walk me through the steps of setting up the best units for saving battery as well... Of course if thats not a lot of trouble.
download links not working , wanted to check this out with cm13 latest built
Update---
Velocity Kernel v14.0!!!
Changelog---
1. Merged Latest CM's Source Updates into Velocity's Source (contains many improvements).
2. Updated the Linux Base Version to the latest one of 3.10 branch i.e., 3.10.104 (contains BUG-Fixes). *NEW
3. Updated the PowerSuspend Drivers to the latest version i.e., v1.7 (should improve Battery-Life).
4. Added Support for Impulse 2016 Edition Governor (a Balanced Governor for smooth performance and decent Battery-Life). *NEW
5. Added Support for State Notifier Driver (an Optimized mechanism for knowing about Panel's State). *NEW
6. Tuned the LionFish Governor (for better Performance). *NEW
7. Modified the Touch-Boost to be user-controllable (In CM, it is enabled by default and is not user-controllable. This makes the Battery deplete much faster. In my kernel, it is disabled by default and is also user-controllable.). *NEW
8. Improved the Thermal Mechanism (better Heat-Management without much degradation in Performance). *NEW
9. Tuned the Interactive Governor for Efficient operation and more Power-Savings. *NEW
10. Removed Franco's Sound Control (Although, I ported it in the best possible manner, it still wasn't quite upto my standards.).
11. Removed the stock CyanogenMOD Core Control Feature (the current implementation wasn't as Efficient as it should have been in reducing Heat and improving Battery-Life). *NEW
12. Minor BUG-Fixes and Improvements.
Now, the Highlights of v14.0 (unique features which only Velocity Kernel offers for Yu-Devices)---
1. Core Control v2.0---
Built from scratch by me, this version of Core Control is much more efficient than the stock one. In this version, Cores are disabled according to temperature in a much more optimized manner. Further, this Core Control of mine, offers efficient Heat-Management as well as improved Battery-Life. To sum up, this is the best Core-Based Heat-Management Technique for Yu-Devices.
2. Faux Sound Control v4.1---
In this Sound Control, I have used Faux Sound v3.6 as base and on top of it, I have modified, fixed and enhanced the Driver. All of the changes are done by me! I have named this version as v4.1 because I have made 5 changes to the Driver (v3.6 + 5 Changes = v4.1). Coming to the point, this Sound Control is finally the best one. I have worked hours on it to port and fix it in the best way. Thus, now, there is no Low-Volume issue. Further, even the Negative Values work too. Also, the Volumes are boosted without distortion now i.e., higher Volumes can be achieved easily. Also, now, there is a fully functional Enable/Disable Toggle for Sound Control. To bring this feature and make it Compatible with the Modified Kernel Adiutor, I did a very clever workaround too. To sum up, this is indeed the best Sound Control for Yu-Devices with No BUGs.
3. Perfect Core-HotPlug Mechanism---
In this version of my kernel, I have added two HotPlugs, AutoSMP and State Helper. Now, you may ask what is unique about it? Well, I have just used these HotPlugs as base. On top of these HotPlugs, I have done huge modifications, wrote many new Codes and worked on them many hours and I am very happy with the results.
AutoSMP (Modified)---
I have modified this HotPlug to only work as an On/Off Toggle. I have removed all the Options and Codes to make this HotPlug lightweight. Th only function of this HotPlug now is to turn an Octa-Core Soc into a Quad-Core one retaining the HMP or big.LITTLE technique. This will allow much more Power-Savings without degrading Performance as well as lesser Heat too.
State Helper (Modified) v2.0---
I have modified this HotPlug to a great extent. The original State Helper was only meant for Normal Architectures and not big.LITTLE architectures. I worked on this HotPlug to make it support big.LITTLE architecture as well as I have Optimized it to Perform in an efficient way too. Also, I have fixed a critical BUG of this HotPlug. Further, I have removed the unnecessary Codes to make it lightweight. Since I have Optimized this HotPlug for big.LITTLE architecture, this HotPlug now offers the ability to disable the big Cluster completely. Further, this HotPlug also offers the ability to turn an Octa-Core HMP Soc to a Hexa-Core one just like the setup of Snapdragon 650. This Optimization allows for Extreme Power-Savings.
These Core-HotPlug mechanisms offer the best way to Control the Cores for managing Heat and Improving Battery-Life. The best part is that users can control these HotPlugs to find the Perfect Combination according their usage. Also, an important point about these HotPlugs is that they are not Load-Based ones. These HotPlugs don't use CPU-Resources and thus offer Better Battery-Life and Lesser CPU-Usage. To sum up, I have Modified and Optimized these HotPlug in the best possible manner. These HotPlugs are the best ones for Yu-Yureka/Yureka PLUS.
4. Perfect OverClock for Snapdragon 615 1st Gen SoC---
As you all know, our devices seem to use the 1st Gen of SD615 SoC. Probably, that's why, we have 1.5 GHz of Max. Frequency. Further, due to great variations among the same SoC, developing OC to work on every device is a very difficult task. The Max. Frequency that our SoC can run properly is 1.7GHz. Above it, the SoC fails to boot. Further, kernels which were offering OCs above 1.7GHz were containing fake OCs i.e., only the numbers change, not the actual Frequency. Now, after weeks of testing by myself as well as some very good testers, I have managed to find the perfect way of implementing the 1.7GHz and 1.2GHz OC Frequency for big and LITTLE Cluster respectively. In my implementation of the OC, I have applied an Efficient Voltage Distribution technique. This allows to not only consume the least amount of Power but also helps in achieving Perfect Stability i.e., the OC will work on every Device irrespective of Revisions. Further, people who choose to not use the OCs, then the kernel will return to use the stock voltages thus providing the same level of efficiency as the stock kernel.
5. Load Shifter---
As I have already discussed in the Load Shifter's own thread, this feature transfers the Workload from the big Cluster to the LITTLE CLuster. Even the Android Background Processes are forced to run on the LITTLE Cluster with the help of this feature. Since we use LITTLE Cluster for most of the tasks except Gaming, there are considerable Gains in Battery-Life as well as Lesser Production of Heat.
Notes---
1. Due to variations in SoC, the Sound Control will work properly at different levels of Volume for different people. For ex, value 5 of Mic Gain may be too loud for some but too low for others. So, you people have to find out the perfect value for yourselves. By the way, value 10 of Mic Gain is known to be the most suitable for every device.
2. In order to avoid conflicts, I have added a failsafe regarding Core-Control and Core-HotPlug Mechanism. This means, out of AutoSMP, State Helper and Core Control, only one can be used at a time. Even if you try to enable each one of them simultanouesly, they won't get enabled. I have done this to avoid malfunctions.
3. After manually changing the CPU Governor or Frequency, all the Cores will come online even if any HotPlug is enabled. So, you just need to re-enable any HotPlugs you were using in order to disable the Cores again.
4. Currently, AOSParadox ROM and a few other voLTE enabled ROMs too have 100% Core-Load Issue. This leads to more Heat-Generation. Further, High CPU-Usage makes Charging Time a lot slower as well as decreases the Battery-Life by a large margin. Until this BUG is fixed, nothing much can be done to improve upon these areas.
5. Sometimes, enabling Core Control may cause the ROM to hang. In this case, rebooting via ROM doesn't work. So, just press and hold Power button until the phone restarts.
6. When Core 0 gets disabled (due to Core Control or State Helper HotPlug), Adiutor fails to get Frequency and Governor information and hence shows 0MHz in Frequency Panel and Blank Space in Governor Panel. This is normal. In this case, if you need to change Governor or Frequency, then you need to disable Core Control or State Helper HotPlug as the case may be. After this, force close Adiutor and then re-open it. This will make Adiutor get CPU information again.
Recommended Settings are also updated!!!
That's it folks! My best creation till date for Yu-Devices. My aim was always to improve the experience we get from our phones and provide the users with control over everything. Today, I have achieved that goal. This became possible only due to months of hard-work by me and testing-work done by some very reliable testers.
Testers (without these people, developing a Stable and BUG-Free Kernel would be near to impossible)---
dixan43
Bijendra barman
Frozen_Lemon
Ryuk and many others were there, thanks to all of you!!!
Download Links---
For all Lollipop (5.1.1) and Yu-OS ROMs---
https://www.androidfilehost.com/?fid=385035244224394352
For Marshmallow (6.0.x) ROMs only---
https://www.androidfilehost.com/?fid=529152257862677379
For AOSParadox 3.x (6.0.x) ROM only---
https://www.androidfilehost.com/?fid=529152257862677377
Enjoy the most efficient and thoughtfully made Kernel.
Shoiab I always use urs kernel as a daily driver but there is low mic volume issue in V14 and unable to resolve that so back to V13 ...so plz share the recommended settings for V13 ....
I hv yu yureka plus running on RRrom6.0.1.Is this kernel good for the rom
Will it work for my yu yureka plus 5510?I have RR rom installed based on Android MM6.0.1
Does this kernel work for 7.1.1 yureka builds?
Sent from my YU5510 using Tapatalk
Same question here does this kernel work for yu yureka on LineageOS 14.1 ?
Sent from my AO5510 using XDA-Developers Legacy app
---------- Post added at 06:29 AM ---------- Previous post was at 06:21 AM ----------
Shoaib05 said:
Update---
Velocity Kernel v14.0!!!
Changelog---
1. Merged Latest CM's Source Updates into Velocity's Source (contains many improvements).
2. Updated the Linux Base Version to the latest one of 3.10 branch i.e., 3.10.104 (contains BUG-Fixes). *NEW
3. Updated the PowerSuspend Drivers to the latest version i.e., v1.7 (should improve Battery-Life).
4. Added Support for Impulse 2016 Edition Governor (a Balanced Governor for smooth performance and decent Battery-Life). *NEW
5. Added Support for State Notifier Driver (an Optimized mechanism for knowing about Panel's State). *NEW
6. Tuned the LionFish Governor (for better Performance). *NEW
7. Modified the Touch-Boost to be user-controllable (In CM, it is enabled by default and is not user-controllable. This makes the Battery deplete much faster. In my kernel, it is disabled by default and is also user-controllable.). *NEW
8. Improved the Thermal Mechanism (better Heat-Management without much degradation in Performance). *NEW
9. Tuned the Interactive Governor for Efficient operation and more Power-Savings. *NEW
10. Removed Franco's Sound Control (Although, I ported it in the best possible manner, it still wasn't quite upto my standards.).
11. Removed the stock CyanogenMOD Core Control Feature (the current implementation wasn't as Efficient as it should have been in reducing Heat and improving Battery-Life). *NEW
12. Minor BUG-Fixes and Improvements.
Now, the Highlights of v14.0 (unique features which only Velocity Kernel offers for Yu-Devices)---
1. Core Control v2.0---
Built from scratch by me, this version of Core Control is much more efficient than the stock one. In this version, Cores are disabled according to temperature in a much more optimized manner. Further, this Core Control of mine, offers efficient Heat-Management as well as improved Battery-Life. To sum up, this is the best Core-Based Heat-Management Technique for Yu-Devices.
2. Faux Sound Control v4.1---
In this Sound Control, I have used Faux Sound v3.6 as base and on top of it, I have modified, fixed and enhanced the Driver. All of the changes are done by me! I have named this version as v4.1 because I have made 5 changes to the Driver (v3.6 + 5 Changes = v4.1). Coming to the point, this Sound Control is finally the best one. I have worked hours on it to port and fix it in the best way. Thus, now, there is no Low-Volume issue. Further, even the Negative Values work too. Also, the Volumes are boosted without distortion now i.e., higher Volumes can be achieved easily. Also, now, there is a fully functional Enable/Disable Toggle for Sound Control. To bring this feature and make it Compatible with the Modified Kernel Adiutor, I did a very clever workaround too. To sum up, this is indeed the best Sound Control for Yu-Devices with No BUGs.
3. Perfect Core-HotPlug Mechanism---
In this version of my kernel, I have added two HotPlugs, AutoSMP and State Helper. Now, you may ask what is unique about it? Well, I have just used these HotPlugs as base. On top of these HotPlugs, I have done huge modifications, wrote many new Codes and worked on them many hours and I am very happy with the results.
AutoSMP (Modified)---
I have modified this HotPlug to only work as an On/Off Toggle. I have removed all the Options and Codes to make this HotPlug lightweight. Th only function of this HotPlug now is to turn an Octa-Core Soc into a Quad-Core one retaining the HMP or big.LITTLE technique. This will allow much more Power-Savings without degrading Performance as well as lesser Heat too.
State Helper (Modified) v2.0---
I have modified this HotPlug to a great extent. The original State Helper was only meant for Normal Architectures and not big.LITTLE architectures. I worked on this HotPlug to make it support big.LITTLE architecture as well as I have Optimized it to Perform in an efficient way too. Also, I have fixed a critical BUG of this HotPlug. Further, I have removed the unnecessary Codes to make it lightweight. Since I have Optimized this HotPlug for big.LITTLE architecture, this HotPlug now offers the ability to disable the big Cluster completely. Further, this HotPlug also offers the ability to turn an Octa-Core HMP Soc to a Hexa-Core one just like the setup of Snapdragon 650. This Optimization allows for Extreme Power-Savings.
These Core-HotPlug mechanisms offer the best way to Control the Cores for managing Heat and Improving Battery-Life. The best part is that users can control these HotPlugs to find the Perfect Combination according their usage. Also, an important point about these HotPlugs is that they are not Load-Based ones. These HotPlugs don't use CPU-Resources and thus offer Better Battery-Life and Lesser CPU-Usage. To sum up, I have Modified and Optimized these HotPlug in the best possible manner. These HotPlugs are the best ones for Yu-Yureka/Yureka PLUS.
4. Perfect OverClock for Snapdragon 615 1st Gen SoC---
As you all know, our devices seem to use the 1st Gen of SD615 SoC. Probably, that's why, we have 1.5 GHz of Max. Frequency. Further, due to great variations among the same SoC, developing OC to work on every device is a very difficult task. The Max. Frequency that our SoC can run properly is 1.7GHz. Above it, the SoC fails to boot. Further, kernels which were offering OCs above 1.7GHz were containing fake OCs i.e., only the numbers change, not the actual Frequency. Now, after weeks of testing by myself as well as some very good testers, I have managed to find the perfect way of implementing the 1.7GHz and 1.2GHz OC Frequency for big and LITTLE Cluster respectively. In my implementation of the OC, I have applied an Efficient Voltage Distribution technique. This allows to not only consume the least amount of Power but also helps in achieving Perfect Stability i.e., the OC will work on every Device irrespective of Revisions. Further, people who choose to not use the OCs, then the kernel will return to use the stock voltages thus providing the same level of efficiency as the stock kernel.
5. Load Shifter---
As I have already discussed in the Load Shifter's own thread, this feature transfers the Workload from the big Cluster to the LITTLE CLuster. Even the Android Background Processes are forced to run on the LITTLE Cluster with the help of this feature. Since we use LITTLE Cluster for most of the tasks except Gaming, there are considerable Gains in Battery-Life as well as Lesser Production of Heat.
Notes---
1. Due to variations in SoC, the Sound Control will work properly at different levels of Volume for different people. For ex, value 5 of Mic Gain may be too loud for some but too low for others. So, you people have to find out the perfect value for yourselves. By the way, value 10 of Mic Gain is known to be the most suitable for every device.
2. In order to avoid conflicts, I have added a failsafe regarding Core-Control and Core-HotPlug Mechanism. This means, out of AutoSMP, State Helper and Core Control, only one can be used at a time. Even if you try to enable each one of them simultanouesly, they won't get enabled. I have done this to avoid malfunctions.
3. After manually changing the CPU Governor or Frequency, all the Cores will come online even if any HotPlug is enabled. So, you just need to re-enable any HotPlugs you were using in order to disable the Cores again.
4. Currently, AOSParadox ROM and a few other voLTE enabled ROMs too have 100% Core-Load Issue. This leads to more Heat-Generation. Further, High CPU-Usage makes Charging Time a lot slower as well as decreases the Battery-Life by a large margin. Until this BUG is fixed, nothing much can be done to improve upon these areas.
5. Sometimes, enabling Core Control may cause the ROM to hang. In this case, rebooting via ROM doesn't work. So, just press and hold Power button until the phone restarts.
6. When Core 0 gets disabled (due to Core Control or State Helper HotPlug), Adiutor fails to get Frequency and Governor information and hence shows 0MHz in Frequency Panel and Blank Space in Governor Panel. This is normal. In this case, if you need to change Governor or Frequency, then you need to disable Core Control or State Helper HotPlug as the case may be. After this, force close Adiutor and then re-open it. This will make Adiutor get CPU information again.
Recommended Settings are also updated!!!
That's it folks! My best creation till date for Yu-Devices. My aim was always to improve the experience we get from our phones and provide the users with control over everything. Today, I have achieved that goal. This became possible only due to months of hard-work by me and testing-work done by some very reliable testers.
Testers (without these people, developing a Stable and BUG-Free Kernel would be near to impossible)---
dixan43
Bijendra barman
Frozen_Lemon
Ryuk and many others were there, thanks to all of you!!!
Download Links---
For all Lollipop (5.1.1) and Yu-OS ROMs---
https://www.androidfilehost.com/?fid=385035244224394352
For Marshmallow (6.0.x) ROMs only---
https://www.androidfilehost.com/?fid=529152257862677379
For AOSParadox 3.x (6.0.x) ROM only---
https://www.androidfilehost.com/?fid=529152257862677377
Enjoy the most efficient and thoughtfully made Kernel.
Click to expand...
Click to collapse
Shoaib05 please can you make it for Yu yureka on LineageOS 14.1 ?
CAN YOU MAKE IT FULL VOLTE FOR IT CAN DO HD VOICE CALLING BUT VIDEO AND WI-FI CALLINGS ARE STILL MISSING , i searched all threads on XDA but still can't find what i am looking for.
Sent from my AO5510 using XDA-Developers Legacy app
I Clean Flash the Velocity Kernel 14.0 Old but after flashing WiFi and WiFi Hotspot Not Working
How to Solve this Issue
Flashed on CM 12.1
Sent from my YU5510A using Tapatalk
O
Sent from my AO5510 using XDA-Developers Legacy app