Related
LuPuS JellyBean Kernel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This kernel can be used on any JB CM BASED JB 4.1 or 4.2
Disclaimer
Code:
[COLOR="DarkOrchid"]#include[/COLOR] [COLOR="Magenta"][/COLOR]
[COLOR="Blue"]/*
* Your warranty is now void.. LOL I guess you knew it already.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, you getting dumped or you getting fired because your phone
* bootloops and alarm does not go off. Please do some research if you have any
* concerns about features included in my kernel before using it! YOU and only
* YOU are choosing to make these modifications.
*/
[COLOR="Magenta"]#ifdef[/COLOR]
You have a [COLOR="DarkGreen"]question[/COLOR] post it in the [COLOR="DarkRed"]thread[/COLOR],
Instead of [COLOR="DarkGreen"]Pm'ing me[/COLOR], as other users may
experience you [COLOR="DarkRed"]problems[/COLOR]
[COLOR="Magenta"]#endif[/COLOR][/COLOR]
What Works --
Wifi - (flash modules)
Bluetooth
Everything Else that works on FXP and any other JB kernel
What doesn't work --
Anything that doesn't work on FXP and any other JB kernel
Added Io-schedulers --
- Noop
- Anticipatory
- Deadline
- CFQ
- BFQ
- SIO
- ZEN
Added Governors --
- lagfree
- brazillianwax
- smoothass
- scary
- savagedzen
- smartass
- smartassv2
- smartassH3
- interactivex
- minmax
- + the 5or6 that are there with FXP
Lulzactive - Thanks to Tegrak
Based on Interactive and Smartass. 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
Virtuous
Virtuous is a modded smartassV2 which gives even more battery time then smartassV2
Intellidemand - Thanks to faux123
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.
Lazy - Thanks to Ezekeel
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.
-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.
-Lionheart:
Is a conservative-based governor. 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.
To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
up_threshold:60
down_threshold:30
freq_step:5
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.
BadAss Governor:
Badass removes all of this "fast peaking" to the max frequency. 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 1024Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
Superbad -
A "superbad" super smooth rendition of a highly optimized "smartass" governor!
Darkside -
A "slightly more agressive smart" optimized governor!
Intellidemand2 - Thanks to faux123 and CosmicDan for mods
Uses d_bus ramping, quick and smooth and performance based, do not complain about battery drain on this
governor but it will make everything feel more like project butter
What else-----
-SLQB - (SLAB allocator with Queue)
This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate).
- Alot of changes to code to try improve smoothness ect
- Wifi signal lock on should now be quicker / stronger then before
--When LEDS change green, pink then blue press volume down to enter CWM Recovery
I would like to say a big thanks to -
slz.kiev - for amazing PACman ROM & Testing
FXP - Sources
Cyanogenmod - Souces
DooMLoRD - Everything he's done for XPeria
wechy77 - For helping me test
tempest918 - For the New Logo
xeozus
NobodyAtAll
Faux123
Erasmus
Leedroid
Phil3759
CTCaer
Anyone missing please PM me
Github Sources -b jellybean
https://github.com/garwedgess/semc-kernel-msm7x30
CWM source -- https://github.com/garwedgess/android_bootable_recovery -b lupus-cwm
LuPuS MENU
You can run lupus menu from terminal or scriptmanager or similar, you must run as root or script will exit with a message
in terminal
Code:
su
lupus
* information is in lupus menu
1/ CIFS Menu *
Enable
Disable
2/ zRam Menu *
Enable
Disable
Set zRam size ( default is 60)
3/ Frandom Menu *
Enable
Disable
4/ USB OTG *
Enable
Disable
5/ Clean and Remove tweaks
Remove init.d's
6/ Tweak Menu
Note all tweaks are preset from here and option to set as init.d's
Clean all temp files
SQLITE optimizations
LMK Optimizations
Network optimizations
Defend against ARP spoofing
Remove android logger
SDcard speed tweak
Flag blocks as non-rotational
7/ Performance Menu
Note all options are se by user input from here and option to set as init.d's
Set CPU frequencies
Set Governor
Set IO-Scheduler
Voltage Control
VM tweaks (explained below)
VM Tweaks
dirty ratio and dirty background ratio 1 & 2
This controls how often the kernel writes data to "disk" (in our case the internal microSD system card, not the removable microSD card). When your apps write data to disk, Linux actually doesn't write the data out to the disk right away, it actually writes the stuff to system memory and the kernel handles when and how the data is actually going to be flushed to the disk. These values represent a percentage, the higher the percentage, the longer it waits to flush, the lower the percentage, the more often flushes will occur. Now remember, we are dealing with solid state storage, not the traditional disk platter and spindle. So we are actually able to delay flushes a little longer with solid state versus a traditional hard drive disk.
dirty_expire_centisecs
How old "dirty" data should be before the kernel considers it old enough to be written to disk. It is expressed in 100ths of a second.
dirty_writeback_centisecs
This is the interval of when the writeback daemons periodically wake up and write "old" data out to disk. It is expressed in 100ths of a second.
min free kbytes
This is used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this number to compute a pages_min value for each lowmem zone in the system. Each lowmem zone gets a number of reserved free pages based proportionally on its size. Default is 2048kb.
overcommit_memory
This controls overcommit of system memory, possibly allowing processes to allocate (but not use) more memory than is actually available.
0 - Heuristic overcommit handling. Obvious overcommits of address space are refused. Used for a typical system. It ensures a seriously wild allocation fails while allowing overcommit to reduce swap usage. root is allowed to allocate slighly more memory in this mode. This is the default.
1 - Always overcommit. Appropriate for some scientific applications.
2 - Don't overcommit. The total address space commit for the system is not permitted to exceed swap plus a configurable percentage (default is 50) of physical RAM. Depending on the percentage you use, in most situations this means a process will not be killed while attempting to use already-allocated memory but will receive errors on memory allocation as appropriate.
Swappiness
A property for the Linux kernel that changes the balance between swapping out runtime memory, as opposed to dropping pages from the system page cache. Swappiness can be set to values between 0 and 100 inclusive. A low value means the kernel will try to avoid swapping as much as possible where a higher value instead will make the kernel aggressively try to use swap space.
VFS Cache Pressure
File system cache (dentry/inode) is really more important than the block cache above in dirty ratio and dirty background ratio, so we really want the kernel to use up much more of the RAM for file system cache, this will increas the performance of the system without sacrificing performance at the application level. The default value is 100, as a percentage, and what you want to do is lower the value to tell the kernel to favor the file system cache and not drop them aggressively.
If you like my work please consider buying me a beer or something else
by clicking the DONATE ME button, of course it isn't needed but greatly appreciated and keeps me motivated.
Changelog ...............
Code:
[hide]
[B][v1] [/B]
- Initial release
- 25 Governors
- 6 Io-Schedulers
- SLQB memory allocator
- Built with linaro 4.6 toolchains
- Swap
- Zram enabled
- Custom voltage control supported
- Supports USB OTG
- Supports ext2, 3 & 4
[B][U]v2[/U][/B]
- Couple of extra tweaks - improvements to battery
- Fixed Wifi issues
- Reverted my disabling of disabling sched_feautures if you get that :P
- Added USB OTG modules needed for USB OTG ( find attached zip at the end of the post)
- Added stable freq-table for higher OCing upto 2ghz
[B][U]v3[/U][/B]
- Completely scrapped previous sources and started fresh
- CWM fixed thanks @ Scritch007
- Built with Linaro 4.7
- Optimized for Linaro
- Thumbee
- Reverted to 1.6 max OC
- Lzo patched
- Use Google Snappy Compression / Decompression
- Added TINY RCU
- Fixed Battery drain ( Tester lost 0.2% overnigh with wifi on ) :victory:
- Uses uncompressed Image {why .img size is bigger)
- Custom improvements for overall smoother performance
[B][U]v4[/U][/B]
- built with latest linaro 4.7.3 (02-01-2013) - Thanks @ ChainFirex
- Added memcopy
- Added compaction
- Lowered vfs_cache_pressure
- LMK (lowmemorykiller) optimizations
- Improved CIFS support
- Enabled USB tether
- Disabled gentle_fair_sleepers
- Updated video drivers
- Clean up on wifi config
- Back-ported binder changes
- TWRP recovery - thanks @ championswimmer & TWRP team
[B][U]v5[/U][/B]
- Built with Linaro 4.7.3 (02-01-2013)
- Free'd RAM (disabled 720p) now 381mb - Thanks at Paul678
- Makefile optimisations (snapdragon & neon) - Thanks at Paul678
- Tweaked permormance on interactive governor - Thanks at Paul678
- Tweaked SIO io sched - Thanks at Paul678
- Free'd some RAM from loggers
- Reduce swappiness
- Fix PageHead
- Fix binder. use of uninitialized variable.
- Fix kernel/net Memory Leaks
- Eliminate kstrdup memory leak
- ipv4: force_igmp_version ignored when a IGMPv3 query received
- Fix Entropy Depleting (no more depleting) - Thanks @ Kees Cook
- enable ipsec tunnel support in kernel (Latest FXP Change)
- ARM7 optimsations + more in config
- TWRP v2.4 - Thanks @ Championswimmer, TWRP Team
- Thanks [user=4402161]@Wechy77[/user] for LuPuS TWRP theme
[B]v6[/B]
- Supports both 4.1 & 4.2 JB
- New IIO Scheduler ZEN thanks [user=2632235]@bbedward[/user]
- New Governor smartassH3 thanks [user=3057569]@Hero[/user]
- Tweaked Deadline IO scheduler
- Tweaked smartassv2
- Frandom
- SFB Net scheduler
- OC up to 1804.8MHz
- Logger backported from CAF
- Free RAM from logger
- LMK updated and optimized + various LMK tweaks
- Various ARM & RAM changes
- TinyRCU optimizations
- Optimized crc32 lib
- various VM changes
- Improved cleancache
- Undervolt LCD display, touch sensor proximity sensor & Wi-Fi thanks @ M66B
- Entropy tweaks
- Try fix for CRT animation [user=4266283]@paul678[/user]
- TWRP & CWM
- LuPuS Menu
- Auto Loading wifi
- All modules and init.d's included No need to flash anything after kernel
Plus alot more changes see [URL="https://github.com/garwedgess/semc-kernel-msm7x30/commits/jellybean"] for full list of credits and patches used[/URL]
[B]v6[/B]
- Latest changes to ALS and Button Backlight -- Thanks @ FXP
- Lowered OC to 1612.8Mhz
- Remove ALS and Button Backlight option from LuPuS Menu (no longer needed)
- Random reboots should be fixed ( for those who where having such issues )
[B]v7[/B]
- Fixed 3D from hanging under high intensity
- Fix pmem for HDPI Mike NG] (no more reboots??)
- CWM Recovery = VOLUME DOWN
- TWRP Recovery = VOLUME UP
- Clean up on LuPuS Menu
- Better wifi check
- KEY RESET ( Menu and POWER)
- Tuned Smartassv3 and SmartassH3 [user=2799345]@M66B[/user]
[B]v8[/B]
- Fixed reboot to recovery on 4.2 (not sure if i broke it on 4.1)
---- Custom CWM
- Clean-up of menu
- Added own wipe options menu -- with extra options
- Aroma File Manager from CWM --- Must have aroma ([COLOR=Red]aromafm.zip) placed on root of sdcard[/COLOR])
- Multi zip installer
- Reboot options - Power off re-added under this menu
- Pointless but people keep asking me for it so re-added wipe battery stats also.
- LuPuS themed...
- Fixed "dancing android"
[/hide]
[B]v9[/B]
- Added option to enable Quick Key Reset (enable / disable via LuPuS Menu)
- Tuned Governors
* superbad
* lionheart
* virtuous
* darkside
* conservative
* smartassH3
- Really use google snappy zRam (improves zRam)
- Added zCache
- Removed persistent RAM
- Removed some more kernel debugging
- uninterruptible sleep
- Update SIO & CFQ
- Added Ultra-KSM
- Removed optimized AES & SHA1 routines
- Updated TWRP to 2.4.4
*Fixed Mount USB Storage in TWRP
- Updated CWM to latest Official CWM source
*Removed reboot options
*Re-added power off and reboot system now to main menu
- Improved wifi-loading scripts
- Clean up of lupus menu
- Fixed root issue on some devices
- Reworked kernel logs (can be found in /data/local/tmp)
- Boot.d - If phone is taking a long time to start move suspicious init.d scripts to /system/etc/boot.d
They will be run in background and won't affect boot time.
LuPuS-Jellybean-DOWNLOADS
If you like my work please consider buying me a beer or something else
by clicking the DONATE ME button, of course it isn't needed but greatly appreciated and keeps me motivated.
480p
LuPuS_urushi_jBv9-ram.img
md5 = 3ff24d7e343beb483aa81d7bcfa1b5f5
[/LIST]
720p
LuPuS_urushi_jBv9.1-full.img
md5 = 1effb6e2ba80afbb55d1bd9d30a426fd
[/LIST]
Mirrors -- all LuPuS Kernels can be found here
www.goo.im/devs/wedgess
Wifi is built in to kernels ramdisk NO MODULES NEEDED
If your MD5 doesn't match re-download
Everithing works fine so far. See benchmark scores.
Sent from my Xperia Ray using xda premium
Wow...nice one! Really responsive! Just wanted to point out that in addition to all the features listed in the OP, that you can undervolt
with this kernel....didn't see it as a feature in the OP...
Thanks!
justmpm said:
Wow...nice one! Really responsive! Just wanted to point out that in addition to all the features listed in the OP, that you can undervolt
with this kernel....didn't see it as a feature in the OP...
Thanks!
Click to expand...
Click to collapse
Lol ye i forgot to add it in to op thanks for reminding me.
Edit- Put of couple of more things into 3rd post, anymore I can remeber will be added
Sent from my GT-I9300 On Official JB
wedgess said:
Lol ye i forgot to add it in to op thanks for reminding me.
Edit- Put of couple of more things into 3rd post, anymore I can remeber will be added
Sent from my GT-I9300 On Official JB
Click to expand...
Click to collapse
very smooth, but has a problem the wifi seems works not stablely, sometimes cause reboot and sometimes cannot been disconnected.
feelow said:
very smooth, but has a problem the wifi seems works not stablely, sometimes cause reboot and sometimes cannot been disconnected.
Click to expand...
Click to collapse
Did you reboot? I have no problem with wifi. Only at first boot I had this problems.
Sent from my Xperia Ray using xda premium
testing...
(thx for your effort sofar :good
1st impression: lower scores on Antatu than with standard PAC-kernel.
i'd like to have a better battery life, so now testing "virtuous/sio, 806/134".
or are there better suggestions?
(like to keep a snappy Ray )
"Custom voltage control supported" not working. The PAC romcontrol says: not supported by your kernel
Wechy77 said:
"Custom voltage control supported" not working. The PAC romcontrol says: not supported by your kernel
Click to expand...
Click to collapse
I don't think that part of RC has been activated....it also doesn't work with the kernel from champilnswimmsr's aokp build. I am using incredicontrol from the play store...but a lot of other apps will let you change the volts.
justmpm said:
I don't think that part of RC has been activated....it also doesn't work with the kernel from champilnswimmsr's aokp build. I am using incredicontrol from the play store...but a lot of other apps will let you change the volts.
Click to expand...
Click to collapse
is there a list of recommended (or safe) voltage settings for the Ray?
Yes i know in rom control it still says not supported not sure why but u can always use SetXperia app from playstore to change it
And poster who asked about safe settings. Try down step -25mv at a time and see what is stable for you. If u get reboots then its obviously not stable.
Or else safest way if your wortied then dont undervolt at all. What maybe stable for someone might not be stable for you
Sent from my GT-I9300 On Official JB
I tryed thi kernel for my CM10 rom. And it seems buggy. Antutu points is lower than on stock kernel, and the perfomance is bad too, including games and UI.
_TREM_ said:
I tryed thi kernel for my CM10 rom. And it seems buggy. Antutu points is lower than on stock kernel, and the perfomance is bad too, including games and UI.
Click to expand...
Click to collapse
lol ok first off this is not stock kernel so you can't compare it to STOCK,Ssecondly i'm not sure what governors, io scheds and frequencies you are using. People who have tested have reported it being smooth and performance being greater not worse. Also I obviously use my own kernels on my own device and my experience is the complete opposite of yours. You sure it not 'your' CM10 rom. Buggy!! how? please do elaborate.
Anyone else confirm what the above pster has said ??
Using it now for some hours with Virtous and SIO and looks very promising. Speed of ROM is for me the same and I dont play games. But Battery seems to be great! I left the screen off a lot and have like 95% deep sleep, so pretty well battery ;D I use FXP142.
EDIT: just tested the game "granny smith'. Runs good! But I didnt test with another kernel.
[GER]Roxxor said:
Using it now for some hours with Virtous and SIO and looks very promising. Speed of ROM is for me the same and I dont play games. But Battery seems to be great! I left the screen off a lot and have like 95% deep sleep, so pretty well battery ;D I use FXP142.
EDIT: just tested the game "granny smith'. Runs good! But I didnt test with another kernel.
Click to expand...
Click to collapse
Ye virtuous is supposed to be more battery friendly then smartassv2
Intellidemand2 would be best performanced based but not the best on battery.
Sent from my GT-I9300 On Official JB
Thanks for the great kernel, really liking the Superbad governor.
I left my ray on during the night, to see what the battery would do...
(i mean screen off, but wifi+3g on)
from 100 to 74% in 9 hours.
8:40 deep sleep (94%)
806/134 virtuous/sio
I cannot compare btw, usually i charge at nighttime, but usage seems quite high?
was hoping for about 90% battery left or something, but like i said, not tested with other kernels.
I think I caught a "wifi" bug. Yesterday the wifi cut out and wouldn't turn back on...after rebooting everything was fine for a few hours and then wifi stopped working. I am not sure if it is really wifi or something else, because if I go into settings I see that wifi is on, I can turn it off but it won't turn back on...if I leave settings and pull down the status bar it show wifi as "on"...when I go back into settings it shows wifi as "on"...and no networks are shown that can be connected. You can do this over and over and every time you reenter settings it says wifi is on. I think it also causes a wakelock from wifestatemanager.
I went into recovery and formatted system and reinstalled PACman v15...a few hours later the problem returned. I flashed in a different kernel and it seemed OK....now I have your kernel on ChampionSwimmer's AOKP ROM and I am waiting to see if the bug returns.
I am not sure if there is something specific I do that activates the bug, so I don't have a logcat of it happening. I attached a logcat of me trying to turn on and off wifi in settings. I also attached the battery stats report from Better Battery Stats in case the wakelock is informative....
{
"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"
}
"I Don't Always Run Custom Kernels. But When I Do, I Run Vindicator"
-Worlds Most Interesting Man
Pushbullet Tag: vindicator
Vindicator OTA Updater App: https://play.google.com/store/apps/details?id=com.mcswainsoftware.vindicator.ota
if there are any bugs, contact developer Jacob
You can also follow me on G+ if you would like:
[email protected]
Intro:
This is the first kernel I've ever developed. I just started developing on android a few months ago so I'm brand new to this. I don't consider myself a developer, I'm just good at figuring things out, all credit goes to the real hard workers coming up with original ideas like Franco, Imo, Flar and Faux. Initially this was built as a kernel to compile with my ROM I'm working on but I decided I would let others get a chance to use it as well. I hope you like it and I won't be offended if you hate it. All ideas are welcome and I'll try to help as best I can. If you wish to use this kernel in a rom , feel free! Although I would love it if you let me know just for my own curiosity.
For those looking for a similar experience, but much closer to stock, I suggest giving Zen Kernel a try!
Goal:Keep kernel as lean as possible while adding certain, desirable features and optimizing for maximum performance and battery life. The default settings should be optimal for a balance of battery and performance without a need to tweak.
Disclaimer:If your phone blows up, its not my fault. If your phone somehow gains perpetual battery life, I'll take full responsibility.
Features:-Zen Kernel Base
-Android 5.1
-BFS Cpu Scheduler (Ported By @bbedward)
-Latest Linux 3.10.x
-Compiled With Uber ToolChain 6.0
-Compiled With Ofast, Strict-Aliasing, Graphite, A15 Tweaks, And Loop Nest Optimizations
-Various Other Build Optimizations
-Optional GPU OC To 700Mhz.
-GPU Initial Freq. Is 110Mhz Instead Of 240Mhz Saving Power.
-Additional GPU Steps
-CAF Power Saving Patches
-CPUIdle Driver Updated To Linux 4.0
-Slub Allocator Updated To Linux 3.18
-GPU UnderVolted
-Workqueue Updated To Linux 3.18
-Init Updated From Upstream
-Power Efficient Workqueues
-Low Power Ram Mode Enabled
-Kernel Same Page Merging
-ZenDecision Quad Core Driver
-Hotplug Affinity Enhancements
-Kexec Hardboot/MultiRom(See FAQ For Help)
-UKM Built In And Modified. Just Install Synapse App.
-Savocas Color/Gamma Control
-Lowered Regulator And Screen Voltages
-Lowered Screen Clock Speed
-Lowered Retention Voltages
-Moto QuickWakeup
-Faux's Simple GPU Governor
-Frandom (Efficient Random Number Generator)
-Hardware Floating Point Processing
-ZRam
-ZSMalloc
-I2C Min Freq. Reduced
-Cruft Free
-Slimmed Down(Increased Size Is Due To Optimizations & UKM Not Bloat)
-Tons Of Debugging Removed
-Many Misc. Optimizations
-35mhz Min Freq, 3.09ghz Max
-Several WakeLocks Removed, Such As Sensor_Ind and hsic.
-MPDecision Disabled By Default
-MSM HotPlug
-Mako Hotplug
-Adjustable Thermal With Lean Kernel Mods
-IntelliActive Governor Added
-FIOPS, ROW & BFQ IO Schedulers Added
-Tons Of IO Fixes/Performance Boosts
-No Force Encrypt. Changed To Encryptable.
-Crypto Optimizations For Enhanced IO Throughput When Encrypted
-Voltage Control
-Westwood TCP Algorithm
-PIE & HHF Network Schedulers(reduced latency)
-Tons Of CAF Commits
-Merged In Most Of Franco's Code
-Merged In Parts Of Faux123's Code
-Merged Significant Portions Of Lean Kernel Code
-Optimized RWSEM
-Many Parts Pulled From Upstream
-Merged In All CAF And Franco Interactive Commits Into Interactive
-Francos Conservative Governor
-CPU Boost Completely Removed(Replaced With Franco's)
-Wake Gestures
-F2FS Support
-LK Config
-Vibration Control
-Asynchronous FSync
-Init.D Support
-Potentially Something I Forgot...
Downloads:
[AFH] Kernel: https://www.androidfilehost.com/?w=files&flid=25836
Downloads also through app and pushbullet
Amazing Donors!:
JackPollard
Maybelle
Credits:
Imoseyon
bbedward
Flar2
Franco
Faux123
Linaro
Code Aurora Foundation
Cl3Kener
Engstk
Yank555
Mistertac (Best Tester Ever)
RIPng(DespairFactor)
Neobuddy89
apb_axel
Google
Motorola
If I Missed You Lemme Know!
XDA:DevDB Information
Vindicator Kernel, Kernel for the Nexus 6
Contributors
Xileforce
Source Code: https://github.com/XileForce/Vindicator
Kernel Special Features: I'm special.
Version Information
Status: Stable
Current Stable Version: 2.3
Created 2015-02-06
Last Updated 2015-05-3
Changelog:
1.0:
-Merged Latest Lean Kernel Code
-Merged Latest Franco Code
-Franco's Thermal Management Replaces Thermald
-Zram ported from Linux 3.19 upstream Using LZ4
-VM Memory Tweaks. (Vfs cache, swappiness,etc)
-I2C min frequency reduced from 50mhz to 19.2mhz
-Retention voltages dropper further
-Removed most Tracers
-Reduced Several Regulator Voltages
-Various CAF Patches
-Disable IO Stats
-Disable More Debugging
-Disable Gentle Fair Sleeper(better performance)
-ZSMalloc ported from Linux 3.19 upstream
-ZPool Ported from Linux 3.19 upstream
-Cut DMA latency in half
-Optimize SFCK Compression
-Reduce Swappiness
-Optimize Dirty Ratios
-Disable HSIC_Host wakelock by default
-Reduce Wlan wakelocks further
-Increase Bark/Pet Time
-Possibly More I Missed.
1.1:
-Savocas New Color/Gamma Control
-Lowered All Regulator Voltages Across The Board
-Lowered Screen Voltages And Screen Clock Speed(no detrimental effects noticed yet)
-Add Under clocked and Over clocked step for L2Cache
-Add 110mhz And 430Mhz GPU Slots
-Fix Simple On Demand Governor
-Additional Build Optimizations
-Integer Square Root Optimizations(3x faster)
-Lower GPU Bus Frequency @ 700mhz(battery and stability)
-Potentially Reduce BlueSleep Wakelock(testing report back please)
-Remove IO Debug
1.2:
-Merged Latest LeanKernel
-Added Option To Disable BlueSleep Wakelock Via Terminal
-Reduced BlueSleep By Default
-Readahead Optimizations
-More Voltage Reductions
-Power Suspend Updated To 1.7
-OC SlimBus
-Revert L2 OC
-Latest Franco Merged In
-Update To Linux 3.10.69
-Fix Ramdisk Issues
-Raise InteractiveX Default Screen Off To 730Mhz
-Lowered Power Draw Further At 35mhz
1.3:
-Added Motorola Quick Wakeup
-UKM Built In. Use Synapse App
-Added Aggressive Build Optimizations
-Merged In New Lean Kernel
-Greatly Reduced GPU Power Draw
-Added Bricked Hotplug
-Added MSM Limiter
-FSync Toggle
-Optimized LZ4 A Bit
-Some CAF Patches
-Increased Available Entropy
1.4:
-Merged In Latest Franco Code
-Removed Bricked Hotplug
-Defaulted Power Aware Scheduling On(Adjust In LkConfig)
-Added Power Efficient Workqueue(Better Battery Life)
-Optimized Timer Code
-Added Westwood TCP Alg.(Best One IMO)
-Updated UKM To Latest
-Updated MSM Limiter
-Numerous CAF/Linaro Patches
-Screen Power Draw Reduced Further
-USB Fast Charge
-Various Code Optimization Patches
-Added Toggles For Arch Power And Gentle Fair Sleepers
-Network Speed Tweak
-Don't Force Sync On Suspend
1.5:
-Kexec-hardboot/multirom support(Huge thanks to team member @jamcswain for porting that!) See FAQ For Help.
-Merged Lean 1.17
-Update To Linux 3.10.71
-Optimize Low Memory Killer For ZRam
-About 50 CAF Patches For Numerous Things(Thanks Neobuddy)
-WiFi Patches
-Crypto,IO,Memory Optimizations
-Entropy Optimizations
-DT2W Fixes
-Screen,GPU Patches
1.6:
-Android 5.1 (Massive Thanks To Imoseyon for merging it in)
-Latest Lean Merged
-Latest Franco Merged
-Mako Hotplug Updates
-Intelliplug V4
-Misc Fixes
-Default Power Aware Scheduler Off Again (Change In lkconfig)
1.7:
-Merged Latest Lean
-Merged Latest Franco
-Ramdisk Fixes For Roms(All Imoseyon)
-IO Boosts
-Updated Linaro ToolChain
-Boot Time Speedup(Jamcswains idea)
-InteractiveX Tweaked(Franco's Idea)
-Numerous CAF Patches
-Mako Hotplug Updates
1.8:
-Merged Latest Lean
-Merged Latest Franco
-Switched Toolchain To Custom Compiled Linaro
-Speed Up Boot Further
-Tons Of CAF Patches
-Audio Fixes/Patches
-800Mhz GPU Step
-MSM Limter Removed
-Added Moto Predictive Touch Driver(Better Responsiveness)
-Updated FB Notifiers
-Disabled MPDecision By Default. Mako Is Default Now
-FIOPS Is Default IO Scheduler Now
-Added Moto Low Memory Killer Optimizations
-CPUfreq and Ext4 Optimizations
-More Debugging Disabled
-Various Other Optimizations And Updates
-Update To Linux 3.10.72
-Probably Stuff I Forgot
1.9:
-Merged Latest Lean Kernel
-Fix USB OTG
-Fix Wake Gestures
-Default To QuadCore Mode For Mako
-Ensure 35Mhz Is Min Freq. on Boot(Fixes Weird Issue)
-Modified UKM/Synapse To Control Wakelocks (Misc Tab)
-Merged Latest Hydra Kernel Changes/Patches
-Fix Battery Drain On BlueTooth
-Frequency Mitigation Preventer V2 (In LKConfig)
-Stability Fixes
1.9.1:
-In Call Audio Fix
1.9.2:
-Updated With Official Multirom/Kexec Hardboot Patch
2.0:
-Merged Latest Franco And Lean Code
-Linux 3.10.73
-Several Memory Leaks Fixed
-Reboot/Bootloops Fixed
-!00's Of Patches
-SELinux Permissive By Default
-Compiled With SaberMod 5.0
-Screen Frequency Reverted To Stock
-Tweaked Interactive Touchboost Parameters Further
-Replaced IntelliPlug With MSM Mpdecision
-Added Back MSM Limiter
-FB Notifiers now Enabled By Default. Toggle Added To Synapse
-Merged In Some Hydra Kernel Ramdisk Fixes
-GPU OC Reduced Back To 700Mhz
-Add Power Aware Scheduling to Synapse (CPU Settings Page)
-Fix Synapse To Display CPU Bin On Front Page
-Revert FastBoot Mods For Now (Buggy)
-KCal Fixes
-MSM_HSIC WakeLock Now Enabled By Default With Divisor Of 5 (Change In Synapse Or LKConfig)
-Mako Hotplug Load Threshold Set Back To 80
-Misc Optimizations
2.1:
-Completely Rebuilt From Scratch Upon Zen Kernel With Input From bbedward
-Some features may be missing atm and may get added back in down the line.
-BFS Cpu scheduler. IMO a significant upgrade over CFS, the standard one used by almost every kernel. Should give better battery life and performance. THIS IS ONE OF THE BIGGEST CHANGES A KERNEL CAN MAKE
-Cleaned up the source and fixed issues.
-EXT4 and F2FS updated with upstream commits.
-Per CPU VMA Caching From Upstream
-BFQ and ROW IO Schedulers
-Touchboost Adjustments For More Butter
-Fauxs Simple GPU Governor
-Lowered the default voltage on 1.497ghz 10mv by default
-Compiled With Ofast Instead of Os (Ofast Is the heighest gcc optimization level, one step above O3. Os optimizes for size, rather than speed.)
-Compressed with optimized XZ rather than LZ4 to keep size down
-Latest lean and Franco merged in.
-Adaptive Low Memory Killer enabled
-So much stuff....and I honestly have no idea on how to write a changelog for a rebase...its an entirely new kernel...
2.2:
-Compiled With UberTC 6.0 (Figured We Would See How It Compares To SM 6)
-Compiled With Graphite Optimizations
-Compiled With Loop Nest Optimizations(An Extremely Aggressive Optimization)
-Compiled With loop-unroll-and-jam(A companion optimization to loop nest also aggressive)
-Small GPU Tweaks
-Greatly increased encrypted IO Performance
-Arm Specific Optimization Patches
-Added Heavy Hitter Filter(Another Network Optimization That May Also Reduce CPU Usage)
-Added Proportional Integral Controller Enhanced(Yet another network optimization algorithm designed to reduce latency and increase efficiency when doing latency sensitive things such as streaming)
-Optimize boot/compressed for Krait
-Addition Branch Optimizations and Inter Procedural Optimizations
-Support CM12.1 Ramdisk
-Optimize ROW and Deadline
-Add Bluesleep Wakelock Toggle
-Reduce Wlan_Ctrl Wakelock
-Default Wlan_rx wakelock divisor to 5
-Default msm_hsic divisor to 6
-Fix lkconfig frequency stuff
-Default below 40% frequency changing OFF
-Cleanup frequency mitigation stuff in lkconfig.
-Add Westwood
-Use amended interruptible threads (reduces cpu load)
-Disable add random on IO
-Reset cpu dma latency to stock...idk what it does so i shouldnt touch it...
-Revert Ram OC (IDK if it even worked)
-Add smb135x wakelock toggle
-A GPU Patch
-Raise default touchboost to 500ms.
-Optimize memcpy and memmove
-Significantly Optimize Console Framebuffer
-Enable non-cacheable streaming enhancement
-Add GPU Compile Optimizations
-Disable a lot more debugging
-Boot with 2.649ghz max freq for stability
-Add OC up to 3.033ghz. Highly unstable IMO but its an option for the brave.
-Cleanup Ramdisk
-Raise voltage a bit on 2.88 for stability.
-Disable useless resource counters to save processing power and battery.
2.3:
-Update CPUIdile Driver and CPUIdle Governors almost completely to linux 4.0(Several Years Worth Of Commits)
-Updated CPUFreq Driver Nearly To Linux 4.0
-Update Suspend/Sleep Driver Mostly To Linux 4.0
-Update SLUB Allocator To Linux 3.18
-Update Block(IO Stuff) From Upstream A Bit.
-Upstream Scheduler Patches
-3.09Ghz CPU Step Added (Likely Quite Unstable) Some People Like That Stuff
-Amperage On 3.03Ghz bumped up a tad for stability.
-Linux 3.10.75
-Frandom random number generator added(Extremely Fast Random Number Generator)
-Power Efficiency Patches From Code Aurora
-Fixed Crash When Switching CPU Govs.
-BFS Updates!
-Update Ondemand to Linux 3.18
-Default OnDemand To Simms22's Preferences
-Merged Latest Franco Code
-Merged Latest Lean Code
-Merged Latest Zen Code
-Franco's Conservative governor updated
-Some Interactive updates
-Color control updates
-ARM Specific Updates
-F2FS Updates
-GPU Driver Updates
-Memory Leak Fixes
-Stability Fixes
-Updated ToolChain
2.4:
-Updated To Linux 3.10.77
-Merged Latest Lean Kernel
-Merged Latest Zen Kernel
-Update Workqueue To ~ Linux 3.18
-Enable Ram To Enter Low Power Mode
-Update mm.h And Memblock from upstream
-Default IO Scheduler To BFQ. Its Been Tested To Be Best For Interactivity
-Upstream Init A Bit
-A Few Patches To SMP
-Upstream Cgroups And Memcg Significantly
-Disable RunQueue Stats. Pointless Bloat and CPU Overhead only needed for mpdecision
-Added Power Efficient WorkQueues Patch From Upstream(This Gives better battery life at the cost of a likely unnoticeable performance hit. Enabled by default. Toggle in synapse CPU settings page)
-Hotplug Efficiency Patch(Optimizes Hotplugging To Handle The Transfer Of Processes From One Core To Another Much Better)
-ZenDecision Added
-Added A Toggle For Mako(Currently Only Works To Disable Mako. Ill Work On It Further In 2.5 Credit to bbedward for this
-GPU Tweaks To Make It Smoother
-UnderAmped(Reduce Current For Every Frequency Up To 2.7ghz. Should Save Power. Experimental)
-Added KSM Tweaked For Android(Disabled By Default, Scans Few Pages, and does so very rarely. I didn't notice a battery hit with it on. Optimizes ram use)
-Franco Kernel Updater Profile Updates
-Ramdisk Modifications(May Fix Some Rom Issues)
-Fix For Ondemand Crashing(Hopefully)
-Misc Tweaks & Patches
-Hotplug Affinity Fixes
-Various Power Saving Patches
-Optimize Copy_Page For Modern Arm Processors
-Do Jiffies Conversions At Compile Time Rather Than Runtime(Saves The Cpu Work)
-Optimize For Our L1/L2 Cache Size
-Allow Options To Be Passed To Memory Barrier Instructions
-2 Patches To Improve File System Performance
-HRTimer Optimizations
-Make Binder Mutex Realtime To Reduce Chance Of SurfaceFlinger Being Blocked
-Keep Track Of ASID Allocations And Try To Reuse Them In Certain Cases To Improve Performance
-Don't Compile CPUIdle Ladder Governor. It doesn't get used anyways.
-Allow Rescuer Thread To Do More Work
-Reduce Runqueue Lock Contention
-don't use compound_head() in virt_to_head_page() this showed around a 1.8% performance improvement in some cases
-Small MultiCore Scheduling Improvement
-Definitely Some Stuff I Forgot
FAQ's
1. How Do I Enable Mako Hotplug?
To enable mako hotplug use your favorite kernel control app like faux or trickster. As of 1.8 it is the default hotplug. In trickster you have to turn off both mpdecision and intelliplug. In faux you need to simply select User Control in the Hotplug Section. The hotplug can be configured using Franko Kernel Updater App.
2. Does This Work With CM12 Theme Engine?
Yes, this works with CM12 Theme Engine and should work on all ROMs properly.
3. How Can I Force All 4 Cores Online All The Time?
First you must enable mako hotplug. Then you need to use Franco's kernel updater app or another app that allows you to tweak mako hotplug settings. In fku app select CPU manager then hotplug control. Change load threshold to 0. Additionally if you just want to make it use 4 cores more often. Lower this number below 80 as desired. This should also be possible to tweak via terminal however I've never used that method.
4. Does This Have D2W, S2W, etc?
Yes, those are part of LK which means they are include in this kernel.
5. Help! I think its making me bootloop!:
This may only apply to specific ROMs and I'm unsure ofnwhy it would change anything but users have reported this to fix the issue. If you are trying a fresh install of a ROM boot on stock kernel first, reboot, then install this kernel.
6. You Broke My Phone! Fix It!:
It will be quite hard for me to figure out what is going on if you don't provide details and a log of what happened. To get a log use any file manager with root support and navigate to sys/fs/pstore I then need the console one.
7. What Kernel Tweaking App Should I Use? What About For Tweaking Screen???:
I now Use synapse as my goto app for kernel tweaking since version 1.3. To control the screen I use the app made by Savoca who created the color control we use http://downloads.codefi.re/savoca/kcal
8. Why Add Zram? We Already Have 3gb Of Ram!
Zram was added in build 1.0 as an experiment of sorts to see how much is was actually being used. V 1.0 introduced a bunch of tweaks to the kernel that essentially make it use more ram in order to give better battery life and performance. Zram was put in place to offset this in a way.
9. Wut Is A LZ4?
LZ4 is a compression algorithm used by the kernel. LZ4 is currently the fastest supported option in the Linux kernel and had to be ported from upstream. It is significantly faster than XZ compression which is what we used prior. The downside is it results in slightly larger file sizes due to a lower compression ratio. However with modern hardware this should be moot. The gains should theoretically be noticed as a general performance bump. Boots should be faster. IO should be marginally faster. Anything that's compressing or decompressing stuff, such as ZRam and encrypted devices will utilize this in a big way. Because its compressing and decompressing so much faster it can also be assumed it is saving battery via less CPU cycles.
10. What Is Strict Aliasing And Why Should I Care?:
One of the big things Linaro does with improving Android's performance is fixing violations of what's known as "the strict aliasing rule." A pointer is said to alias another pointer when they both refer to the same location of memory. This is OK and not an uncommon thing to do. The strict aliasing rule is that pointers of different types should never refer to the same location of memory (aka alias each other). Strict aliasing allows a compiler to make some assumptions when compiling and optimizing code that it otherwise couldn't. It's actually one of the biggest optimizations you can do and it is fairly hard to add which is why most people don't. Here's a nice read up on it http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html#benefits
11. Come on man. 35mhz is pointless bro!:
A common misconception is that if two frequencies run at the same voltage. They use equal power. In fact this couldn't be less true. The equation for power draw has four variables. Two of which are frequency and voltage. Essentially it is the frequency multiplied by the square of the voltage. Then you would take that and multiply it by a few other things such as capacitance. However that is irrelevant for our purposes as it will not effect the relative results. This means that 35mhz running at 500mv will use about 3x less power than 98mhz at 500mv. Now we say well what about compared to 300mhz? I can stably run that at around 650mv. Maybe slightly less. This equates to about 15x less power usage at 35mhz. Well now that we know that. Who cares? Its not like 35mhz will even get used. Its too low! I beg to differ. I would almost guarantee that if you are not running mpdecision 35 MHz will be within the top 3 most used frequencies. Most likely the top used below sleep. And every time it uses that over 300mhz you are saving 15x the power. Additionally 35mhz also runs at a cache frequency of 35mhz as opposed to 300mhz cache frequency and runs a lower bus speed/voltage saving additional power. The same goes for 98mhz. Hope this helps clear things up.
12. How Do I Disable BlueSleep Wakelock?
Open terminal emulator app. Type su then hit enter then type echo 0 > /sys/module/wakeup/parameters/enable_bluesleep_ws all on one line. It won't say anything but if you turn on Bluetooth and check your wakelocks you shouldn't see the wakelock there anymore. This needs to be set on each boot currently. If you experience Bluetooth connectivity issues don't disable this. To enable it again either reboot or run the same command with a 1 instead of a 0.
13. How Do I Use MultiRom???:
To use multi ROM first you must download the MultiRom App from this location http://tasemnice.eu/bordel/MultiROMMgr-v1.180.apk the play store version doesn't work with shamu yet. Then you will need to open it, go to settings and tap the version number until you are a developer. Then click override manifest URL and for manifest URL enter http://tasemnice.eu/multirom-test/manifest.json the. Go back to the main page. You should now have MultiRom and recovery boxes checked. Click install, reboot etc. To install a ROM. Download a ROM you like, go to twrp, click advanced,MultiRom,add ROM. Select internal storage and the Your zip file. Flash it but don't reboot! After that go back and select "list ROMs" select the ROM u just flashed still and click flash zip and select your gapps,supersu etc. After that simple reboot and select your new ROM on boot use the MultiRom app to manage your ROMs.
More will be added as they come up and I think of them.
Configuration Guide:
The following can be done using your favorite kernel tweaking app. I use synapse.
Clock Speed:
To begin I prefer to leave my max clock speed at the stock 2.649ghz. Set min CPU as low as it can go. As of current release this is 35. For the adventurous you can try 2.88ghz. Often I bump the voltage 12mVolts on 2.88 to be safe.
To find your CPU binning run this command in terminal emulator OR look at the first page in synapse near the bottom:
su (enter)
cat /proc/cpu/msm_acpu_pvs (enter)
(Put a space between cat and /proc)
note that the number may be displayed at the beginning of the next line.
It will then display a number from 0-15. 15 being the best. Don't stress over it too much if you score low, its not the end of the world. It just means you need marginally more voltage to run each frequency.
GPU:
As of Alpha 1.3 the GPU can now be over clocked to 700mhz. This is completely optional. To verify your over clock change the GPU governor to performance and see if it spikes to 700 every so often. If it does it worked! If it doesn't you may need to set the frequency to something else then back to 700 again. It remains to be seen what kind of benefits the GPU over clock will give but it is there for those who want it. The recommended GPU governor is the stock msm adreno one. If you encounter lag in games you can try changing it to performance temporarily while playing that game. Simple on demand is a more performance oriented governor.
Governor:
Most people will probably want to just leave this set to interactive. Its a really good governor that is being actively devolped by CAF, Google, and Franco. It also hooks into Francos CPU Boosting interface. Its "smarter" than OnDemand and generally considered to offer better battery life. If you want even more smoothness some consider OnDemand to provide a bit better performance, however you may get slightly worse battery life. This is because OnDemand ramps up to max frequency when there's is load put on the CPU and then slowly works its way down. Interactive scales through the frequencies on the way up and down which saves battery life but prevents it from jumping to max speed as fast if it is needed. Simms22 recommends using the OnDemand governor with "upthreshold" set to 98 and the sampling rate set to 15000. That is the default setting of the Trinity Kernel. Mistertac made the great suggestion of turning the max screen off frequency down to 600mhz if using the interactiveX governor. This will prevent any misbehaving apps from keeping CPU ramped up while screen is off and give better idle drain. The actual number you would have to type in would be 652800 for the screen off frequency. The Conservative Governor is greatly modified by franco, Its no longer a super slow governor as it once was. It also hooks into his cpu boost control interface meaning you get cpu boost when using it. Conservative prefers the lower frequencies, however so if you find yourself having lag, you may want to switch to another.
PowerSuspend:
The only working options in V1.6 of the PowerSuspend driver are lcd_panel and Userspace which can be found in the miscellaneous section of FauxClock. I suggest leaving it at the default choice of LCD_PANEL. In FauxClock if you navigate to the cpu idle/stats area you will be presented with more options. You should see a list of C-states. For example C0: wfi and C1: retention. These are essentially low power states that the cpu can enter to save power. The higher the C number the deeper the sleep. Last I heard, the optimal configuration was to enable C0, C1, and C3. Paired with lowered Retention voltages, this should give you a very low idle drain.
Hotplugging:
Next go to hot plugging section and disable MPDecision(make poor decision) and enable intelliplug or, enable Mako Hotplug(Franco's) by either selecting user control as your hotplug, or disabling both mpdecision and intelliplug. Tweaking for them is split up below.
IntelliPlug:
FauxClock allows you to further configure intelliplug. If you want more battery set it to Conservative (4) mode which will hotplug the CPU more conservatively and save you battery, essentially this means it will use less cores if it can. For most people, leaving it on Balanced (4) mode will be fine. If you want further battery savings you can set it to EcoPerformance (2) or even EcoConservative (2) which will only use a max of 2 cores. IntelliPlug is able to use a single core unlike Mako Hotplug.
Mako Hotplug:
As far as I know the only way to tweak Mako Hotplug is either through the terminal app, synapse or through Francos app. In Francos app select cpu manager, then Hotplug Control. The main one you will need is load threshold. The default is 80. The higher this number, the more load the cpu needs to be under before it will plug the 3rd and 4th cores. 80 is actually pretty good value for most people and it will use the extra 2 cores when it really needs them. If you want to force all 4 cores on for whatever reason, you can achieve this by setting the load threshold to 0. This will effectively disable hotplugging. Of course you can always find a middle ground as well.
Via Terminal:
The sysfs interface for mako hotplug is...
/sys/devices/virtual/misc/mako_hotplug_control
To adjust... Use echo commands...
Ex:
echo 0 > /sys/devices/virtual/misc/mako_hotplug_control/load_threshold
The above command would set the load threshold to 0.
Thanks Rignfool!
Voltage Control:
Next go to voltage control. I'm a Bin 5 and I can use a 48mVolt undervolt without becoming unstable. Rember! Never set voltages to apply on boot until you have tested them for a few hours first! Most people can probably get away with a 36mVolt undervolt and nearly everyone should use at least a -24mVolt UV. Also remember that if you are running an over clock you may not want to undervolt that frequency. If you find yourself running into freezes or random reboots remove the undervolt!
Thermal:
This kernel comes with the latest IntelliThermal Driver from Faux123, which is a highly configurable thermal driver, as well as Franco's Thermal Driver which is the stock option. It is recommended you use IntelliThermal over Franco's if you wish to customize the values. Change this option under the Thermal Manager section of FauxClock. The optimal settings that I have found are 70 degrees for frequency throttle, and then somewhere between 70 and 80 for core throttle temp, depending on how safe you want to be. Stock is 80 degrees. Leave all cores checked for both frequency throttling and core throttling. I also leave on GPU Thermal Control, but if you encounter periodic lag in games you may wish to disable it. I also leave Core Thermal Control on as well, though I'm not entirely sure what it does lol. Also FYI, the sliders beneath those two options are showing you the current status of them, they are not sliders you can move.....trust me...I tried for like 5 minutes before I realized and felt like a moron....
I/O Settings:
For I/O scheduler select FIOPS. FIOPS is superior to the other schedulers in nearly every way. It is a scheduler designed for flash storage which is what our phones use. My testing has shown that 1536 is the best readahead buffer. Less or more is detrimental.
ZRam:
ZRam is something designed to optimize the ram of a device. What typically happens when a device runs out of space in ram is it is forced to use something called swap. Swap is normally a partition of a hard drive or ssd depending on what is available where the ram can copy some of it's contents to free up space. The problem is even the fastest SSDs are many many times slower than ram. Android by default doesn't have swap, however it does use a low memory killer which essentially goes through and clears out apps that are in ram to free space. ZRam makes a compressed partition inside the ram itself which then acts as a swap partition. Basically when ram begins to fill up. It compresses data and sticks it in a sealed off area of the ram. This let's it stuff way more stuff into ram than normal. To enable ZRam I use fauxclock. Trickster for whatever reason does not work. In FauxClock go to memory settings, then set the Zram size to 300mb and click apply disk size. Then turn it on and set on boot. You have now essentially boosted the available ram via compression!
VM Settings:
There are numerous tweaks you can do to the VM. For this I use FauxClock but IK Kernel Aduitor can do this as well. In FauxClock navigate to memory manager. The first thing to tweak is an option called swappiness. This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase agressiveness. I defaulted this to 10 however the default is 60. This will use more ram but give better performance. Next is VFS Cache Pressure. This controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects. The default used to be 200. Its now defaulted to 10 meaning more ram usage but more performance. Next up is dirty ratio and dirty background ratio. Some things pass through ram and stay there for a bit until they get flushed to the flash storage. These controls essentially dictate how long it should wait before flushing to the flash storage. The longer you can delay it the better performance and battery you achieve, at the cost of ram. Setting these higher will increase ram usage but increase performance. I recommend a background ratio of 30 and a dirty ratio of 50, however feel free to tweak them as you desire.
Color Control:
Next you may want to adjust Screen RGB, value, saturation, hue and contrast. WrinkleFree over in the Lean Kernel thread did extensive testing with a professional grade $1000 screen calibration tool. You can use this app http://downloads.codefi.re/savoca/kcal to control the screen.
For the most truly color accurate screen at D6500K:
Red - 248
Green - 246
Blue - 255
If you prefer a slightly cooler screen and the tuning the iPhone uses which is D7400K:
Red - 237
Green - 235
Blue - 255
More info can be found about color calibration here: http://forum.xda-developers.com/showpost.php?p=57265483&postcount=620
As for saturation. I like to turn it up a bit and make the colors pop a bit more so I leave it around 65. But quite honestly saturation,value,contrast,and hue are going to come down to tweaking it and finding what you like most. Have fun!
These settings are meant to be used as a starting point. Depending on your cpu binning and desires you will probably want to tweak these slightly to fit your needs. I'll add more as new features get added, I learn more, and I think of stuff to add Hope it helps someone!
Sweet! Good work man.
Thanks for sharing.
It does support the CM Theme Engine, right ?
x0nar said:
Thanks for sharing.
It does support the CM Theme Engine, right ?
Click to expand...
Click to collapse
Yessir using it as we speak
Seems buttery enough. Will let you know the battery life on Bliss 2.0
x0nar said:
Seems buttery enough. Will let you know the battery life on Bliss 2.0
Click to expand...
Click to collapse
Good to hear so far. Don't forget to lower your min frequency . Also I recommend either Conservative or Interactive governors ATM as they hook into the new CPU boost. I'll be posting a full configuration guide probably tomorrow. Hope you like it.
New kernel , SUPER
Fauert said:
New kernel , SUPER
Click to expand...
Click to collapse
Hope you like it! No doubt I'll be hearing many bug reports when I wake up tomorrow
I've been testing this kernel on a few different Roms without any issues at all really so everyone should be happy with it.
If anyone gets any reboots though do try and get logs [emoji106]
Xileforce said:
Good to hear so far. Don't forget to lower your min frequency . Also I recommend either Conservative or Interactive governors ATM as they hook into the new CPU boost. I'll be posting a full configuration guide probably tomorrow. Hope you like it.
Click to expand...
Click to collapse
Looking forward to your guide.
Nice kernel. Jist one thing, may be is a feature i dnt know but only 2 cores online when i tried tu push all cores on, just stay with 2 or 1 core on. I changed the hotplug but still the same
Sent from my Nexus 6 using XDA Free mobile app
Bestplayer55 said:
Nice kernel. Jist one thing, may be is a feature i dnt know but only 2 cores online when i tried tu push all cores on, just stay with 2 or 1 core on. I changed the hotplug but still the same
Sent from my Nexus 6 using XDA Free mobile app
Click to expand...
Click to collapse
Are you trying to do this for a Benchmark?
Using the Faux app you can first set it to Intelliplug , then Performance (4) Cores and that should get you there.
If not, try setting it that way and reboot. I've noticed with this phone that I've had to reboot a lot for my changes to actually take correctly.
Cpu2 and cpu3 are stuck in performance...
And does anyone know where in sysfs to adjust mako hotplug?
rignfool said:
Cpu2 and cpu3 are stuck in performance...
And does anyone know where in sysfs to adjust mako hotplug?
Click to expand...
Click to collapse
Gotcha.. Well once Mr Xile wakes up I'm sure he'll have something for you, not sure myself.
Mistertac said:
Gotcha.. Well once Mr Xile wakes up I'm sure he'll have something for you, not sure myself.
Click to expand...
Click to collapse
I found it... And I learned a new Linux command in the process...
Haven't done a full battery test yet, but I seem to be getting the best I've seen so far.
Bestplayer55 said:
Nice kernel. Jist one thing, may be is a feature i dnt know but only 2 cores online when i tried tu push all cores on, just stay with 2 or 1 core on. I changed the hotplug but still the same
Sent from my Nexus 6 using XDA Free mobile app
Click to expand...
Click to collapse
Currently if you disable all hotplugs or if you use fauxclock to set it to usercontrol that enables Franco's mako hotplug. Thats why in an app such as faux you cannot easily force two cores online. However if you use Franco's updster app you can go to CPU manager then hotplug control and if you lower the load threshold it will hotplug more frequently. Setting this to 0 will force all cores online. Additionally as mistertac said. Using b intelliplug on either performance(4) mode or balanced(4) will use all 4 cores pretty frequently as well.
Be Sure ! If you benefit to the other's you will see it's effect.
Imam Ali
LG G3_D850/1/2/5 - VS985 STOCK KERNEL
Gabriel-5
LOLLIPOP 5.0
BORN TO BE SMOOTHER AND SAVE MORE BATTERY
THIS WASN'T POSSIBLE WITHOUT @nikhil18 & @ZaneZam KIND ANSWERS
AND @airlessproject PATCHES AND @dorimanx
all credits goes to
@nikhil18, @airlessproject @ZaneZam @Tectas @faux123 @HolyAngel
and all friends in XDA have shared their knowledge
and i'm not a developer, just did for hobby
>> my git is here <<
Special Thanks to my Teammates
@BuLLeT_93 & @horsetastic
FLASH AT YOUR OWN RISK !!
CURRENT VERSION : Gabriel-0.8.3
Main Download Folder-MEGA
0.8.3 ( 21.12.15)
*Power suspend removed
*State notifier added (thx to neobuddy), mods were changed to work with S-notifier
*Hotplugs were updated to latest Dev's changes and working with S-notifier
*Cpufreq limiter updated to v 5.1
*Cputime updated
*Cpufreq were updated to latest Dev's change
Now it looks smoother with same kernel config :good:
0.8.2 ( 20.12.15)
*Initial Nitro version boot fail fixed
0.8.2 ( 12.11.15)
* Linux Kernel Version 3.4.110
* Bunch of Debug options were Removed, This will save CPU Cycle
* zzmoove updated to 1 beta 8
* zzmoove Thermal control is activated ( you can control it as well in cpufreq parameters, eg choose game profile and see its options . It will reduce CPU clock when reach Target Temp )
* zzmoove Native Hotplug : disable other hotplug driver and turn it on and vice versa
* Hotplugs and Cpu Governors were Updated
* Power suspend 1.7
* KCal were Updated
* Compiled with updated UBERTC 5.2.x
* Available in 2 version : "Default ( battery )" have stock parameters while "Nitro" is Tuned for Better Performance ( It's boosted version of Default or Battery version thus it can eat more battery and it's initial Nitro Release thus some parameters should be tune More )
Change-log Gabriel-Tastic 290715
Change-log 0.8.1-b 060815
Change-log 0.8.1-d 080815
UKM (synapse) mod by BuLLeT_93 - 120815
Synapse + UKM Package
send me your log if you got
any problems,see this instruction
for getting the log
Battery tips&tricks
This post will update with your informations and experiences about battery saving
[MOD] LCD TWEAKS (FPS - RESOLUTION) for Better Battery Life
[MOD] Lower AutoBrightness Values
[GUIDE] 'AUTOBOTS' Kernel Settings [Gabriel kernel] [Battery Life]
MODEM
The modem act as the Software bridge between the RIL driver and your phones Hardware (correct me if i am wrong)
Because of that you can directly (more or less) control how your phone signal is behaving by trying different Modems till you find one that suits your needs.
The modem images does have an impact on wifi, mobile networks and how fast they are able to scale up or down, battery runtime, as well as call quality sometimes.
While the g3 got a good signal most of the time the changes might not be this big, compared to other phones and their modem differences, but it is still a good thing to know you got the best reception possible
For me the 20A and 20p Modems are working better then the most others... But there will be people with other carriers etc for whose another might be the right!
@empulse92 said
here is his great MODEM collection
ZZMOOVE Profile Numbers
currently available profiles by ZaneZam and Yank555
------------------------------------------------------------------------------------------------------------------------------------------
(1)'def'-> Default -> will set governor defaults
------------------------------------------------------------------------------------------------------------------------------------------
(2)'ybat'-> Yank Battery -> a very good battery/performance balanced setting DEV-NOTE: highly recommended! ------------------------------------------------------------------------------------------------------------------------------------------
(3)'ybatext'-> Yank Battery Extreme -> like yank battery but focus on battery saving ------------------------------------------------------------------------------------------------------------------------------------------
(4)'zzbat'-> ZaneZam Battery -> a more 'harsh' setting strictly focused on battery saving DEV-NOTE: might give some lags! ------------------------------------------------------------------------------------------------------------------------------------------
(5)'zzbatp'-> ZaneZam Battery Plus -> NEW! reworked 'faster' battery setting DEV-NOTE: recommended too! ------------------------------------------------------------------------------------------------------------------------------------------
(6)'zzopt'-> ZaneZam Optimized -> balanced setting with no focus in any direction DEV-NOTE: relict from back in the days, even though some people still like it!
------------------------------------------------------------------------------------------------------------------------------------------
(7)'zzmod'-> ZaneZam Moderate -> NEW! setting based on 'zzopt' which has mainly (but not strictly only!) 2 cores online ------------------------------------------------------------------------------------------------------------------------------------------
(8)'zzperf'-> ZaneZam Performance -> all you can get from zzmoove in terms of performance but still has the fast down scaling/hotplugging behaving ------------------------------------------------------------------------------------------------------------------------------------------
(9)'zzinz'-> ZaneZam InZane -> NEW! based on performance with new insane scaling active. a new experience! ------------------------------------------------------------------------------------------------------------------------------------------
(10)'zzgame'-> ZaneZam Gaming -> NEW! based on performance with scaling block enabled to avoid cpu overheating during gameplay ------------------------------------------------------------------------------------------------------------------------------------------
(11)'zzrelax'-> ZaneZam Relax -> NEW! based on moderate (except hotplug settings) with relaxed sleep settings
For change zzmoove profiles
use this tut
thanks to @chacho_2me
Bullet_93 config
CPU
Max frequency 2457
Min frequency 268
Gov Lionheart with:
UP TRESHOLD 80
DOWN THRESHOLD 75
FREQ STEP 5
SAMPLING RATE 20000
Sync frequency 1190
CPU HOTPLUG
Mp Decision OFF
Intelliplug ON Balanced Profile
Histerysis 12
THERMAL
Control core and VDD Restricion both ON
GPU
Simple_ondemand Governor
Max frequency 389mhz
IO SCHEDULER
Tripndroid
Read Ahead 4096kb
VIRTUAL MEMORY
Dirty Ratio 10
Dirty Background Ratio 5
Dirty Expire 1000
Dirty Writeback 3000
Min free 4096
Overcommit ratio 50
Swappiness 70
Vfs_cache_pressure 50
Zram 600mb
Kcal config :
Saturation 38
Screen Hue 24
Value 128
Contrast 138
horsetastic bubmlemee v2
zzmoove profile number 5
Profile 5 tweaks;
Down threshold 80
Sleep down threshold 80
Freq limit sleep 268mhz
Sampling rate 100000
Smooth up 70
Up threshold 85
cpu max 2265mhz
cpu min 268mhz
multicore power saving disabled
input boost frequency 1267mhz
cpu voltage -25
mpdecision off
intelliplug on conservative
touch boost off
cpu max screen off frequency 268mhz
thermal control intellithermal
gpu msm-adreno-tz
gpu max 578mhz
i/o scheduler fiops
read ahead 2048
low memory killer very aggressive
Virtual memory zram to 0
TCP congestion algorithm westwood
Horestastic Bumblebee V3
CPU
Max Freq - 1958mhz
Min Freq - 268mhz
Governor - zzmoove (Profile Number 5 zzbatp)
Governor Tunables Changes;-
freq_limit_sleep 268mhz
sampling rate 100000 or 80000 if laggy
smooth up 75
smooth up sleep 100
up threshold 85
up threshold sleep 100
Multicore Power Saving - Disabled
CPU Boost Interval - 10ms
Sync Threshold - 1190mhz
Input Boost Freq - 1267mhz
CPU Voltage - Global -60
CPU Hotplug Either stock zzmove hotplug with both disabled or Intelliplug (both are great)
Balanced Profile
Touch Boost - Disabled (Enable if laggy)
Hysteresis Value - 12
Threshold Value - 722
CPU Max Screen Off Freq - 268mhz
Thermal - Core Control & VDD Restriction Enabled - All stock values
GPU Governor - Simple ondemand
Max Freq - 578mhz
Laziness - 5
Ramp Threshold - 4
I/O Scheduler - fiops
Read ahead - 2048
Low memory Killer - Very aggressive
Virtual Memory
dirt ratio - 10
dirty background ratio - 5
dirty expire centisecs - 1000
dirty writeback centisecs - 3000
min free kbytes - 4096
overcommit ratio - 50
swappiness - 30
vfs cache pressure - 50
laptop mode - 0
ZRAM - 200 (but this is personal choice really)
TCP Congestion Algorithm - Westwood (Or Cubic if desired)
Looks interesting...
Do you plan on making versions for the other variants? Like my D851
leald said:
Do you plan on making versions for the other variants? Like my D851
Click to expand...
Click to collapse
yea,i've an exam in next 2 week,i'll working on it
mostafaz said:
yea,i've an exam in next 2 week,i'll working on it
Click to expand...
Click to collapse
Looks promising...please work on sound quality also
Off topic:
Don't you have konkur?
cause i have...in 2 weeks
Wish you the best
reza1995live said:
Looks promising...please work on sound quality also
Off topic:
Don't you have konkur?
cause i have...in 2 weeks
Wish you the best
Click to expand...
Click to collapse
yea -wish ya luck
actually other kernels have faux sound and it's good enough, but i want do something different and add other sound engine,but in next releases
mostafaz said:
yea -wish ya luck
actually other kernels have faux sound and it's good enough, but i want do something different and add other sound engine,but in next releases
Click to expand...
Click to collapse
Don't worry I'm sure we all can wait...focus on your exam cause I know how important that is.
nice )
i like the 268mhz cpu step and gpu 27idle.
i missed that when i switched phones from oneplus to lg g3. thanks for the kernel will install.
i guess i can just flash it over my chupachups kernel?
What governors are in this Kernel?
Does not work with 20p, it restarts the phone all the time.
horsetastic said:
What governors are in this Kernel?
Click to expand...
Click to collapse
Smartmax, Smartmax-eps (extreme power saving), conservative (up/down treshold added), interactive(patched)
and other stock govs
No worry about the governors. I flashed it haha. Working nicely with cloudy 2.2 so far. Not been long of course. Any recommended settings for battery life?
I'm set on Fiops, 2048 read ahead, smartmax eps, 300000 Max off screen, 2.5ghz Max clock, simple on demand GPU, under clocked to 330. And some other bits I think.
Derpling said:
Does not work with 20p, it restarts the phone all the time.
Click to expand...
Click to collapse
thx for reporting
do you have d855 variants?which rom?
i got reset issue while trying to add cpu over clock feature,but now its ok,maybe i should reduce oc values
horsetastic said:
No worry about the governors. I flashed it haha. Working nicely with cloudy 2.2 so far. Not been long of course. Any recommended settings for battery life?
I'm set on Fiops, 2048 read ahead, smartmax eps, 300000 Max off screen, 2.5ghz Max clock, simple on demand GPU, under clocked to 330. And some other bits I think.
Click to expand...
Click to collapse
good
try change tcp cong to cube if u loose more power on wifi or data,but its good with that.
i will update 2nd post with batt tips,with info users will tell me,thx
OK great thanks. Any plans to add more governors? More battery saving options the better haha. Phone is a battery beast.
5 days before we didnt have any kernel dev now we have two....thanks for the kernel...also if you can post your kernel to a more known and "better" site than this arabic something site with slow speed!!!it could be great!!!thanks!
horsetastic said:
OK great thanks. Any plans to add more governors? More battery saving options the better haha. Phone is a battery beast.
Click to expand...
Click to collapse
yea,i will-but first must be sure that not buggy and works fine the release
also you can tune governor, got 5 hrs sot,50% brightness,camera,some call and text surfing the net and g+(cubic tcp)-max scr 960-260~2500 cpu-27~578 gpu-io sched 512 rowzram off-hot plug 1 -1 ,uv 25
give it a try
Weirdly the smartmax and smartmax eps governors don't seem to be very battery friendly lol.
On engines kernel Lionheart was good when on paper it shouldnt really be but Wheatley and DanceDance were bad when they should of been good. I don't get it?
I am just making this in hopes to get more details in what may be causing the lag issues so thay Lorn Boeffla might be able to figure out why it works on some but not others.
Things that might be useful is listing a few basic details.
Phone - 16 or 64GB
Upgrade order (coming from stock or a previous kernel)
Recovery version
Any other kernel management software?
Boeffla config app settings
Working well / Not working well (+ symptoms)
Reserved
My specs:
- 64GB
- Fresh install from stock kernel
- TWRP 2.8.7.0
- Boeffla-Config V2 only
- Config
- FIOPS @ 1024MB Readahead
- 1344 MHz touch boost
- A53 CPU interactive - Battery Extreme
- Hotplug Min 2 Max 4
- A57 CPU Interactive - Battery
- Hotplug Min 0 Max 4
- GPU Simple_on Demand
- Stock Charge rates (can cause issues with not charging on USB?)
- Issues? None, lag free, great performance and battery life, appx 4h screen on time
- sms, phone, light games, browsing
Hey guys and girls,
So straight to Topic.
The Kirisakura-Harmony is based on the latest google sources. On top of it are the latest EAS patches directly from Linaro. It also includes a few Audio Patches from CAF. Power Gating is disabled so you can use this kernel with @chdloc ´s excellent, I am wholeheartedly recommending it, biquads mod. If you grasp what you can do with it, you will never need an equalizer in your life again. So this is also an audio oriented kernel.
As I said I am still learning. The Feature list Comes here:
- Based on the latest Sources from Google for Android Q/10
- Upstreamed to 3.18.140
- Schedutil included again
- GPU Adrenoboost
- Wake gestures from flar2
- KCAL from savoca and ported by tbalden
- HBM enabled and accessible for the user
- Backlight dimmer is added
- FIOPS, SIO and MAPLE I/O Scheduler included
- Updated BFQ I/O Scheduler
- I managed to merge some Audio Patches from CAF, which should enhance Audio
- Power Gating disabled so you can use @chdloc ´s biquad mod
- Vibration Control
- Sound Control
- sdcardfs
- Sched and latest Schedutil (with latest upstream patches is also default)
- Updated EAS Machinery
- USB fast charge
Instructions for Android P
How to flash the Kernel:
1. Download the kernel.zip to your device
1a. Optional: While it may not be necessary all times, you may want to restore stock boot.img, re-root with magisk and optionally install twrp.zip if coming from another kernel. Before reporting issues make sure you do that! Thank you!
You only need to do either 2a OR 2b
2a. Boot to TWRP and flash my kernel.zip. Root will be preserved!
or
2b. Flash kernel zip in EX Kernel Manager or FKM app. Root will be preserved!
3. After booting up make sure to set schedutil as default CPU governor (check apply on reboot option) to fully profit from the kernel´s changes!
4. Enjoy your device now!
Android 10 Download:
Download:
https://www.androidfilehost.com/?w=files&flid=300707
Download for PIE
Download:
https://www.androidfilehost.com/?w=files&flid=198589
Oreo Kernel Stuff
Download:
https://www.androidfilehost.com/?w=files&flid=152851
Changelog-Mainline:
0.1
- Initial release
0.2
-added safetynet patch
0.3
- Add GPU OC
- Update wake gestures
- Many new Performance Patches
- Updated dm verity
0.4_1
- More performance tweaks
- Made my kernel a flashable zip <-- I hope you guys are satisfied now
0.5
- add Slimbus OC <-- Increases Audio Quality
- Various crypto Patches
- More Patches that may help with Performance
- added wakelock Patches
- added a few alsa patches
0.6
- added soundcontrol
- disabled some logging stuff
- some more tweaks
0.7
-enabled few other tcp congestion algorithms <-- westwood is now default
- set default iosched to deadline as it works best with eas kernels if we trust the documentation
0.8
- added sdcardfs <-- take a look at the FAQ on how to enable it
- added in two new governors, alucardsched and darknesssched
- merged in some other commits. take a look at my github
0.9
- when deactivating kernel side dt2w and s2w, one is still able to use the stock google dt2w implementation
- code updates for both alucardsched and darknesssched <--- if anyone has time please test and report back how they work with 0.9
- added option for GPU boost <--- disabled by default, take a look at the faq please
- update to cpuidle <--- deep sleep is improved for me
- the simple_ondemand GPU governor is now usable and does not crash upon choosing
- fix an issue were tasks were not given properly to cpusets
- a few other changes, please take a look at my github
0.9_5
- fixed a typo which would the user not choose msm-adreno-tz GPU governor after choosing simple_ondemand <--- also have no worries I implemented a patch that will let you choose only GPU governors that will not crash
- a few more commits for schedutil and sdcardfs
0.10
- all security patches
- some patches that may help with efficiency
- many patches to schedutil,sched, and walt (many)
- few patches to sdcardfs
- tuned WALT values a bit
- other things I forgot, check my github
0.11
- I added a few additional commits to adrenoboost, it is now more conservative and suited for daily use. I run it on moderate boost and don´t notice any battery drain
- performance of the fingerprint reader may be improved <-- I need feedback from you, don´t use it myself
- update to slimbus OC
- a few patches that may help with stability and performance in general
- many patches to schedutil , it is the recommended governor now in conjunction with nohint.zip
- introduced a new governor, called helix_schedutil based on schedutil; thanks to @ZeroInfinity
I had a little play with it, if anyone finds better values I can include them.
- for more details check my github
- please check this post prior to flashing: https://forum.xda-developers.com/showpost.php?p=71415045&postcount=210
Changelog for 0.12:
- added blu active governor
- updates to helix_schedutil, alucardsched and darknesssched
- updates to sdcardfs
- maybe some performance improvements <-- please give feedback
- other things look at my github
- made a non oc version
- please check this post prior to flashing: https://forum.xda-developers.com/showpost.php?p=71502126&postcount=241
Changelog for 0.13
- Implemented CPU_Input_Boost by sultanxda <--- disabled by default, if you experience scrolling lag activate it in EXKM, CPU Tab
- Implemented a new sched governor called energy-dcfc (Dynamic Capacity and Frequency Capping), more information in second and third post
- Some adjustements for schedutil
- Updated helix_schedutil
- some improvements to alucardsched and darknesssched
- adjusted WALT to final parameters
- bumped up and improved BFQ, thanks @DespairFactor <-- new default
- introduced Maple I/O scheduler
- updated sdcardfs
- please check this post prior to flashing: https://forum.xda-developers.com/showpost.php?p=71502126&postcount=241
Changelog for 0.14
- Added April Security Patches
- Updates to Schedutil, Sched, energy-dcfc
- Introduced a new EAS governor called pwrutil <-- more information on the second post
- Some upstream patches
- some more crypto patches
- updated wakelock blockers
- for other things look at my github
- please check this post prior to flashing: https://forum.xda-developers.com/showpost.php?p=71502126&postcount=241
Changelog for 0.16
- Linux Kernel Version is now 3.18.51
- Applied May security Patches
- many other little improvements and changes
Changelog-Rebase:
- Features EAS 1.2 Machinery
- May security update
- Linux version 3.18.53
- Includes all features from mainline except the EAS Governors (sched and schedutil are included) and CPU Boost.
- IO switcher
- some patches to schedutil
1.24
Updated sdcardfs
little performance tweak
updates to low power mode
1.28
- IO switcher
- some patches to schedutil
1.29
- performance tweak
1.32
- 3.18.55
- June Security Update
1.36
- updated sdcardfs
- EAS patch
- Linux Bump to 3.18.56
- ipv6, net and ext4 patches
1.40
- Linux Version now at 3.18.59
- July Security Patches
- updated sdcardfs
- little patch for sched
- boost now also ufs storage controller upon turning on the screen additionally to boost ddr bandwidth(even faster wakeup)
- extended recharge rate when battery is near full (aids longevity of our battery)
Changelog-Harmony:
4.00
https://forum.xda-developers.com/showpost.php?p=75835635&postcount=1105
5.01
https://forum.xda-developers.com/showpost.php?p=76106520&postcount=1129
6.00
https://forum.xda-developers.com/showpost.php?p=77515614&postcount=1166
6.01
https://forum.xda-developers.com/showpost.php?p=77533981&postcount=1178
6.02
https://forum.xda-developers.com/showpost.php?p=77588617&postcount=1180
6.04
https://forum.xda-developers.com/showpost.php?p=77758260&postcount=1188
6.05
https://forum.xda-developers.com/showpost.php?p=77776533&postcount=1189
6.06
https://forum.xda-developers.com/showpost.php?p=78125103&postcount=1198
6.07
https://forum.xda-developers.com/showpost.php?p=78342154&postcount=1209
7.00
https://forum.xda-developers.com/showpost.php?p=78916917&postcount=1243
7.01
https://forum.xda-developers.com/showpost.php?p=78968314&postcount=1251
8.10
https://forum.xda-developers.com/showpost.php?p=79506878&postcount=1287
10.0
https://forum.xda-developers.com/showpost.php?p=80581575&postcount=1301
10.1.0
https://forum.xda-developers.com/showpost.php?p=81119421&postcount=1311
FAQ:
Q: Which app do you recommend to apply changes to the kernel?
A: EX Kernel Manager from @flar2 is a great choice. He is constantly updating it.
Q: Which CPU governor I can choose freely and not hinder the EAS?
A: schedutil
Q: what is GPU boost and how should I choose the boost level?
A: I also implemented GPU Boost.
if you use the default GPU governor which is msm-adreno-tz you will have the option of GPU boost in EXKM. if you choose simple_ondemand not.
I think GPU Boost is not really needed on this phone as it raises GPU freqs aggressively enough for most tasks. So I leave it disabled at default.
It was originally introduced on the HTC 10, to counter an issue whereby the GPU failed to scale up aggressively enough, to run some not demanding games properly in 60fps locked. But there are some performance junkies (like me) who want to try such things.
So you can enable this setting and it has 3 profiles. Low, medium and high. It defines how aggressively the GPU gets scaled up.
I found GPU boost on low to be quite a good all day setting. Maybe a little bit more performance and not a too big hit on battery.
Medium and High are definitely more battery hungry and you should do this only for gaming or benchmarks.
Q: What is the difference of WALT and PELT and how does it affect me?
A: https://forum.xda-developers.com/showpost.php?p=71336204&postcount=179
Credits:
@Eliminater74 for bringing me into the game and the Inspiration
@flar2 for all his work
@tbalden
@savoca
@franciscofranco
@DespairFactor for the zip and the help
@Alucard24
@ZeroInfinity
@RenderBroken for helping me out
@dorimanx
@Sultanxda
if i forgot anyone just pm me and I will gladly add you
Source: https://github.com/freak07
Info Post
So this post will be dedicated to information about EAS in general.
Another amazing write up about alucardsched by a talented new dev @joshuous:
This is what I understand from tracing the Alucardsched code. I apologise if my understanding is incorrect.
Firstly, next frequency selection with Schedutil (very simple):
Code:
next_freq = 1.25 * Max_freq * current_util / max_util;
Now, here's a quick overview of one cycle of frequency selection in Alucardsched:
1. You have two key extra tunables: PUMP_INC_STEP and PUMP_DEC_STEP
2. Current utilisation here refers to the system's current demand. It is calculated using:
Code:
curr_util = (util * (100 + tunables->boost_perc)) / max_utilisation
The "util" is a value determined by the EAS scheduler.
3. Target load here refers to what processor is currently supplying. It is calculated using:
Code:
target_load = (current_freq * 100) / max_freq;
4. The key idea is to ensure that supply satisfies demand. That is, target load ≈ current load.
5. If target_load <= current_load (too little supply), then we want to increase frequencies to match the system’s load. For Alucardsched, frequency is increased by jumping up PUMP_INC_STEP number of steps in the OPP table. (By OPP table, I refer to the available frequencies that you can switch to)
6. If target_load > current_load (too much supply), then we want to decrease frequencies to match the system’s load. For Alucardsched, frequency is decreased by jumping down PUMP_DEC_STEP number of steps in the OPP table.
7. Do note that Alucardsched jumps several frequency steps, compared to Schedutil and Interactive which try to jump immediately to a calculated next frequency. In this way, Alucardsched doesn't care about the specific value of the next speed. It's like driving a car, and deciding to increase gears by several steps instead of deciding to jump immediately to a specific gear.
Extra Tunables
FREQ_RESPONSIVENESS
PUMP_INC_STEP_AT_MIN_FREQ
PUMP_DEC_STEP_AT_MIN_FREQ
Sometimes you want the "pumping" behaviour to behave differently at lower and higher frequencies. FREQ_RESPONSIVENESS can be seen as the mark that divides the low and high frequencies. If the current frequency is less than FREQ_RESPONSIVENESS, the number of frequency skips will be PUMP_INC_STEP_AT_MIN_FREQ and PUMP_DEC_STEP_AT_MIN_FREQ instead of the usual PUMP_INC_STEP and PUMP_DEC_STEP.
How is it used? If your frequency is low (lower than FREQ_RESPONSIVENESS) and your system demand is high, you ideally want to boost frequency speeds quickly. This is when PUMP_INC_STEP_AT_MIN_FREQ kicks in. PUMP_INC_STEP_AT_MIN_FREQ is usually (and should be) a larger value than PUMP_INC_STEP. When your frequency is high (higher than FREQ_RESPONSIVENESS) and your system demand is high, you don't want to be jumping so many steps up otherwise you will hit max frequencies too quickly (overkill). I'm pretty sure you can figure out how PUMP_DEC_STEP and PUMP_DEC_STEP_AT_MIN_FREQ works after having read this paragraph
Tldr;
Schedutil: simpler
Alucardsched: more tunable
Code:
IF CURRENT_FREQ < FREQ_RESPONSIVENESS:
PUMP_INC_STEP_AT_MIN_FREQ and PUMP_DEC_STEP_AT_MIN_FREQ are used
ELSE:
PUMP_INC_STEP and PUMP_DEC_STEP are used
PUMP_INC_STEP_AT_MIN_FREQ should be larger than PUMP_INC_STEP.
Note: There is however a potential problem (if you may call it one) with Alucardsched: just like Interactive you rely almost entirely on heuristics (trial and error) to control your frequency jumps instead of letting the system choose it for you, like in Schedutil. In that way, Alucardsched detracts from the goal of Schedutil to provide a simple frequency choosing mechanism. Without the proper tuning to meet your specific usage, it is likely that your frequencies will overshoot or undershoot past the needed load on Alucardsched (just like in Interactive). I would recommend that you play with the tunables to see what works best for you.
Here is information about energy-dcfc (Dynamic Capacity and Frequency Capping):
This new governor is based on schedutil. It uses target_load variables as thresholds to let the governor decide when to cap the frequencies for both clusters. These variables are called "load1_cap" and "load2_cap". Load1_cap corresponds to target_load1 meaning anything that is below target_load1, it caps using load1_cap. Anything above target_load1 and below target_load2, use load2_cap. Anything above target_load 2 and the maximum frequency will be used.
As a result of this behaviour, bit shift value must be set to 1. Anything higher than 1 and frequency scaling will be extremely slow. This is because the lower the maximum frequency, the lower the next frequency target is because the frequency range is being limited.
AS OF V009: The governor has now incorporated @Kyuubi10 's schedutil dynamic formula change. When load is below target_load1 it will use add bitshift in the formula. If load is above target_load1 but below target_load2, it won't use any bit shifting at all. If load is more than target_load2, it will subtract bitshift in the formula. This has proven to be very efficient with a touchboost-like behaviour when scrolling (Up to the capped frequency of this governor), then steady performance in between, and on heavy workloads it will not just stay on maximum frequency, in fact it will hover around 1.3-1.9GHz to ensure thermals are good as well as battery endurance.
This governor is aimed with maximum efficiency in mind. Do not expect outstanding performance with this governor.
helix_schedutil explained by @Kyuubi10
To understand Helix_schedutil you must first understand the original schedutil algorithm.
Here it is:
next_freq = maxfreq + (maxfreq >> bitshift) * util/maxcapacity
Explanation:
The most obvious difference of this algorithm is that it moves away from the idea of scaling frequencies up or down which were used in previous generations of governors.
Instead the aim of the above algorithm is to calculate the most appropriate frequency for the TOTAL CPU load.
NOTE: This is TOTAL load on CPU, not just load for the current frequency step as Interactive used to calculate with.
Now, for you numberphiles like myself that like understanding algorithms... Let's break it down:
"util/maxcapacity = Load."
The above creates a percentage value in decimal format (80% = 0.8) which represents the TOTAL load on CPU.
the algorithm now reads the following way:
next_freq = maxfreq + (maxfreq >> bitshift) * load
"maxfreq + (maxfreq >> bitshift)"
Essentially the aim of the above is to ensure that next_freq is always a little higher than the exact value needed to cover the load.
Bitshift: (paraphrasing @ZeroInfinity) in programming the ">>" mathematical function allows for shifting the binary values towards the direction of the arrows by "N" times.
In this case it is towards the right.
The relationship between "N" and the calculation in the "()" is as follows:
Bitshift = 1 = maxfreq/2
Bitshift = 2 = maxfreq/4
Bitshift = 3 = maxfreq/8
If the "+()" didn't exist in the algorithm, the chosen frequency would be exactly enough to cover the load.
If load is 0.6, aka 60%, all you need is a frequency = 60% of max frequency.
This would be bad since it doesn't leave any capacity/bandwidth leftover for inevitable bumps in load, nor space for EAS itself to run. Thus inevitably creating lags.
To keep a bit of free bandwidth you add "(maxfreq >> bitshift)".
Finally the problem I encountered, if bitshift = 2, then the result of the algorithm is that any load above 0.8 will result in a next_freq HIGHER than maxfreq. - This is your tipping point. As any load higher than 80% will wake up a new CPU.
Which means you have still about 20% of the CPU's max capacity being unused. Such a CPU is only 80% efficient.
Therefore by increasing bitshift to 3, the algorithm reads:
"maxfreq+(maxfreq/8)*load = next_freq"
This way you can use 89% of capacity before reaching max frequency of the CPU.
With bitshift=4 it reads:
"maxfreq+(maxfreq/16)*load = next_freq"
This allows you to use up to 94% total CPU load before reaching max frequency.
While this is great for improving efficiency at the higher frequencies, it doesn't leave enough bandwidth when calculating lower frequencies, and creates lag when load spikes at lower frequencies.
Update to the explanation:
After being inspired by the concept of @ZeroInfinity's new governor - Energy-DCFC, I decided to carry out a couple of tests on HTC 10 using variations of Helix_Schedutil.
The focus was stress-testing by increasing the current frequency load above 100%. (AKA Use up all of the bandwidth of the current frequency step.)
After the testing me and Zero worked on this new version of Helix_Schedutil.
The current behaviour of the governor is the following:
- Boost frequencies when load is below Target_Load1. (Boost can be increased by DECREASING bit_shift1 value.)
- Between Target_Loads there is no bit_shift at all. The governor just uses the following algorithm instead - (max_freq*util/max = next_freq)
- Loads higher than Target_Load2 will be THROTTLED. Bit_Shift2 here is subtracted rather than added. (Throttle effect can be increased by DECREASING bit_shift2 value.)
The result is that low freqs have spare bandwidth to avoid lags, middle frequencies leave no extra bandwidth at all, while higher frequencies are throttled to save battery.
Another focus of the governor update is to reduce overhead as much as possible. This results in a very responsive governor which isn't overly demanding on battery life.
Schedtune.boost values recommended for use with this governor:
Top_App: 5
Foreground: -50
Background: -50
Global: -50
Energy-DCFC is still recommended for those who prefer battery life over performance, but if you prefer greater performance then this governor can be used without making you feel guilty about wasting battery.
correction a misconception:
Some people describe tipping point as the load threshold which the governor uses to decide whether to ramp up or down.
While if you look into the behaviour of the governor it may appear that it behaves in such a way, it is technically incorrect.
As I mentioned previously this new algorithm moves away from the behaviour of legacy governor algorithms which focus on the current frequency load.
This governor does no ramping up or down.
It isn't even aware of the current frequency load, as it only knows the load relative to max capacity.
The misconception appears based on a property of the algorithm that results in a consistent load at any chosen frequency. This is a coincidental result of the algorithm, even though the algorithm is completely unaware of it.
Tipping point is in fact the load percentage at which the CPU reaches max frequency and any increase in load forces it to wake up a new core
here is some Information about pwrutil governor:
This new governor is based on schedutil.
A much simpler yet very effective governor based on schedutil. All this changes is the calculation to get the next frequency. Rather than using bit shift to calculate tipping point and what not, we don't use it at all. This is much much more efficient if you use my program called "schedutilCalculator" to calculate what the next frequency is. For example, a load of 25% with a max freq of 2150400 will get 500MHz as next frequency. A load of 50% will get 1GHz as next frequency. A load of 75% will get 1.5-1.6GHz as next frequency. A load of 100% will get 2.15GHz as next frequency. You can see the lower the load, the much lower the frequency selection will be, but the higher the load and the higher the frequency selection is. So it can go from a very low powered state with 50% load and under, to a high performance state from 75% load and above.
Includes a tunable called "utilboost" which is basically a load multiplier - it makes load higher than it is perceived by the governor, thus making next frequency selection higher. Remember utilisation does not equal load. The equation of calculating load is util / max capacity of a CPU (which should be 1024). So 512 / 1024 = 0.5 (50% load).
UTIL BOOST IS NOT MEANT TO BE USED WITH SCHEDTUNE.BOOST AT THE SAME TIME! EITHER USE ONE OR THE OTHER OR ELSE PERFORMANCE WILL BE OVERKILL AND BATTERY LIFE WILL DRAIN MUCH FASTER!!!
Util boost is supposed to be a replacement of schedtune.boost. schedtune.boost applies boosting to both clusters, whereas util boost allows boosting per-cluster so users can have much more control.
how to gather logs:
There are several apps that can do this process for you, Here is one: PlayStore: SysLog
And here is another: PlayStore: Andy Log (ROOT)
ramopps: is an oops/panic logger that writes its logs to RAM before the system
crashes. It works by logging oopses and panics in a circular buffer. Ramoops
needs a system with persistent RAM so that the content of that area can
survive after a restart.
logcat: the logoutput of the Android system
kernel log: (kmsg / dmesg): the kernel messages
Additionally there's the last_kmsg which is a dump of the kernel log until the last shutdown.
radio log: the log outpur ot your System / BB / RIL communication
4
ramopps:Some Documentation on Ramopps
Normal Logcat:
Radio Logcat:
Ramoops:
Via adb:
adb shell su -c cat /sys/fs/pstore/console-ramoops > kmsg.txt
Via terminal on phone:
su
cat /sys/fs/pstore/console-ramoops > /sdcard/kmsg.txt
Kernel Log:
Kernel Log:
adb shell su -c dmesg > dmesg.log
Last_Kmsg:NOTE:
New location of last_kmsg on Android 6.0 and above: /sys/fs/pstore/console-ramoops
adb shell su -c "cat /proc/last_kmsg" > last_kmsg.log
NOTES:
-v time will include timestamps in the logcats
-d will export the complete log.
If you want to save a continuous log you can remove the -d parameter - then you need to cancel the logging process via CTRL+C.
To export a continuous kernel log use adb shell su -c "cat /proc/kmsg" > dmesg.log (and cancel it via CTRL+C again).
PS: This Document was taked from another XDA Thread Called: [Reference] How to get useful logs
URL: http://forum.xda-developers.com/showthread.php?t=2185929
Also check this one out: [Tutorial] How To Logcat
I only Revived it a bit for ramopps.
I will update this more at a later time..
Excellent work my friend thanks for supporting the Pixel XL I hope you get lots of joy from your new hobby!
Will flash in the morning and see how it goes...
Most of those audio patches you backported seem to be interesting, specially the ones that are meant to reduce power comsumption. Will pick. Suggestion, you don't need to specify the slot in the fastboot command, just fastboot flash kernel kernel_binary
can you disable storage force-encryption?thanks!
Sent from my Pixel XL using XDA Labs
Are the safetynet patches implemented by any chance?
franciscofranco said:
Most of those audio patches you backported seem to be interesting, specially the ones that are meant to reduce power comsumption. Will pick. Suggestion, you don't need to specify the slot in the fastboot command, just fastboot flash kernel kernel_binary
Click to expand...
Click to collapse
When I did only fastboot flash, I ended up twice with a system that somehow didn’t know which boot slot to boot to.
Each reboot it would boot into the different boot slot. The only thing that resolved this was to flash the factory image from google.
Even specifying the boot slot via fastboot did not alter this behaviour.
Somewhere in the q & a section someone is describing the problem too. It occured the first time after using fastboot flash kernel command.
almightysiman said:
can you disable storage force-encryption?thanks!
Click to expand...
Click to collapse
I will look into it.
ghostENVY said:
Are the safetynet patches implemented by any chance?
Click to expand...
Click to collapse
No I didn’t implement them yet. I will look into it.
Let us know when you'll have a flashable zip for this! Sounds good!
Thanks for another kernel option!
Sent from my Pixel XL using XDA Labs
Freak07 said:
When I did only fastboot flash, I ended up twice with a system that somehow didn’t know which boot slot to boot to.
Each reboot it would boot into the different boot slot. The only thing that resolved this was to flash the factory image from google.
Even specifying the boot slot via fastboot did not alter this behaviour.
Somewhere in the q & a section someone is describing the problem too. It occured the first time after using fastboot flash kernel command.
Click to expand...
Click to collapse
Well, I've been using that command since day 1. I've flashed countless times, it never failed to boot once...
franciscofranco said:
Well, I've been using that command since day 1. I've flashed countless times, it never failed to boot once...
Click to expand...
Click to collapse
are you running stock rom? I believe you, if you say, you never had issues.
I ran into the issue I described earlier. It would Change Slots upon each reboot and nothing except flashing back stock Google Image fixes it.
new kernel 0.2 is available
I added safetynet patch and another commit that may help with Performance
Download is here or in the OP
https://www.androidfilehost.com/?fid=529152257862702410
It's great to see development for our beloved Pixel XL! I'll be checking this out. I thank you friend!
Freak07 said:
It also includes a few Audio Patches from CAF.
Click to expand...
Click to collapse
Anything related to aptX Bluetooth?
CZ Eddie said:
Anything related to aptX Bluetooth?
Click to expand...
Click to collapse
Don’t know. What are you searching for exactly?
Hey
I updated the kernel to 0.3
Main changes are:
- Add GPU OC to 652mhz like the performance edition of our soc
- Update wake gestures
- Many new Performance Patches
- Updated dm verity
Download is here:
https://www.androidfilehost.com/?fid=745425885120707916
Lots of sweet features and commits. Definitely keeping my eye on this kernel. :good:
Can you make it TWRP flashable please?
Sent from my Pixel XL using XDA Labs