FORUMS

[Kernel] Vindicator [5.1.1] [G920/G925] [COJ2] [R5]

3,057 posts
Thanks Meter: 3,141
 
By Xileforce, Senior Member on 13th July 2015, 09:09 AM
Post Reply Email Thread
Vindicator Kernel

Supports F/I/S/K/L/T/W8 variants of 920 AND 925 devices

Intro:

This kernel was built to appeal to users who want something thats trimmed down as much as possible, yet still adds nice features that arent considered bloat. I spent a lot of time optimizing it and plan on spending several more hours just on optimizations. This kernel is also built with significant amounts of upstream code merged in, making it what many would deem a hybrid kernel. All credit goes to the real hard workers coming up with original ideas like Franco, Imoseyon, Ktoonsez, g.lewarne, etc. 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.


Goal:

Keep kernel as lean as possible while adding certain, desirable features, upstreaming source, 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:

-COGA Source Based
-Universal Kernel! (Thanks to G.lewarne and Ktoonsez patchset!)
-VControl Kernel Control Script(Loosely Based On lkconfig by imoseyon)
-Compiled With Graphite, Loop Nest Optimizations, Ofast And Others.
-Various Other Build Optimizations
-WLAN_RX & WLAN_CTRL Wakelocks Reduced
-GPU OC/UC
-Interactive ScreenOff Max Frequency
-Improved LMK
-Dynamic ReadAhead
-Dynamic Fsync
-LEDFade
-VMA Caching
-Calibrated Power Coefficients
-Smoothened GPU Throttling Curve
-Lz4 Compression
-Interactive Governor Patches/Mods
-Timer/RCU System Upstreamed
-SensorHub Wakelock Toggle To Remove
-A53 UnderClockable To 200Mhz Oc To 1600Mhz
-A57 UnderClockable To 200Mhz Oc To 2500Mhz
-Slub Allocator Updated To Linux 3.18
-Synapse Support
-Memory Management Updates
-Arm Efficient Unaligned Access Enabled
-Reduced Scheduler Wakeups
-Nvidia Power Efficiency Patches
-Encrypted Performance Improvements
-Deep Sleep Fix
-Disabled IO Stats For Faster IO
-Memory Leak Patches
-Sleep/Suspend Patches
-3X Faster Integer Square Root Operations
-HRTimer Optimizations
-Avoid load Average Moire
-Scheduler Optimizations
-Power Aware Scheduling
-Sound Control
-Memcopy and String Optimizations
-Use Compile Time Constants For Jiffies Conversions When Possible(Reduces CPU Overhead)
-Workqueue Updated To Linux 3.18
-Optional Power Efficient Workqueues (Expanded to more modules than normal as well)
-Moto QuickWakeup Driver
-Frandom (Efficient Random Number Generator)
-Cruft Free
-Slimmed Down
-Tons Of Debugging and Tracers Removed
-Many Misc. Optimizations
-Optimized CFQ Scheduler For SSDs
-Tons Of IO Fixes/Performance Boosts
-ROW IO Schedule(Default)
-Voltage Control For Numerous Things
-Entropy Optimizations/Tweaks
-Many Parts Pulled From Upstream
-Init.D Support
-Installs SU
-Installs Busybox
-Potentially Something I Forgot...


Downloads:

[AFH] Kernel: https://www.androidfilehost.com/?w=files&flid=35336

If Coming From Arter Kernel:
Reflash TWRP recovery if using philz and flash this zip http://www.mediafire.com/?um57p83b3cb56x4 before flashing kernel.


Credits:

Imoseyon
Ktoonsez
AndreiLux
Arter97
G.lewarne
Samsung
Flar2
anarkia
hybridmax
Franco
Faux123
Linaro
Code Aurora Foundation
Cl3Kener
Friedrich420
Google
Motorola
If I Missed You Lemme Know!

XDA:DevDB Information
VindicatorS6-Unified Kernel, Kernel for the Samsung Galaxy S6

Contributors
Xileforce
Source Code: https://github.com/XileForce/Vindicator-S6-Unified

Kernel Special Features:

Version Information
Status: Stable

Created 2015-07-13
Last Updated 2015-12-7
The Following 75 Users Say Thank You to Xileforce For This Useful Post: [ View ] Gift Xileforce Ad-Free
13th July 2015, 09:10 AM |#2  
Xileforce's Avatar
OP Senior Member
Thanks Meter: 3,141
 
Donate to Me
More
Changelog:
R1:
-Initial Release

R2:
-Updated From Linux 3.10.61 To 3.10.83
-Updated Memory Management Tweaks
-Update Interactive Tunings
-Fix App Installing
-Fix Random Reboots
-Removed Overclocking For Now(Caused reboots)
-Removed Fsync Toggle(Caused app installs to fail)
-Added Asynchronous Fsync(Faster Fsync)
-Fixed Frandom Permissions
-Additional Entropy Optimizations
-Added Interactive Patches
-Trimmed More Stuff
-Interactive No Longer Scales Up The Frequency Below 5% Load(Better Battery)

R3:
-Lag Free Interactive Tweaks (Glewarne)
-Interactive Screen Off Max Frequency = (InteractiveX)
-InputBooster Removed(Touchboost)
-BOG8 Source Update
-Memory Management Update
-Better Frequency Selecting By Interactive
-Numerous Interactive Code Optimizations/Patches
-Added A Toggle To Remove SensorHub Wakelock In VControl
-Remove Task Packing
-Trimmed More Things/Debugging
-Removed Forced Full screen Updates
-Some Power Efficient Related Tweaks
-Additional Optimizations
-Many Misc Things.
-Cifs support

R4:
-COGA Based
-Compiled With Linaro 5.2 TC
-Compiled With Ofast vs Os
-Fully Tickless Kernel(faster more power efficient)
-Updated Memory Tweaks
-Added CPU OC Again!
-Fixed Big Cpu Settings Not Sticking
-More Interactive Tweaks
-Reverted Enforced Mode
-Async Fsync Replaced With Dynamic Fsync
-Power Aware Scheduling Option
-Updated To Linux 3.10.87
-Added DT2W
-Misc Patches
-Added Synapse Support
-Updated Nvidia Power Efficiency Patches
-Various Upstream Timer/RCU Updates
-Add LED Fade Patch
-Add Audio Control
-Add Various Voltage Controls
-Optimize ART
-Update VControl Options
-CFQ Optimizations
-GPU Throttling Smoothing
-Task Packing Toggle Fixed
-Task Packing Threshold Adjusted
-Added PowerSuspend Driver
-Updated Unification Patches
-Disabled Gentle Fair Sleepers(Ui Smoothness)
-Numerous Interactive Patches
-Removed InteractiveX
-Re-Added TouchBoost
-Enable Efficient Unaligned Access

R4.1:
-Reverted Back To Dynamic Ticks Kernel
-Enabled Fast No Hz(Power Efficiency)
-Enabled RCU Priority Boosting(Performance Increase)

R5:
-Honestly Almost Everything Changed But Here's Some From Memory
-Interactive screen off limited to 1ghz
-Hotplug optimizations
-Interactive Patches
-LMK Upstreamed
-GPU OC/UC
-Ramdisk and synapse updated
-DT2W Removed
-LED Fade added
-Fixed Lockscreen Crashes
-GPU Tweaks
-Strict Aliasing Optimizations
-Significant amount of power efficiency patches
-Sound Control Removed
-More garbage removed
-Optimized a few libs for A57
-Updated To COJ2
-Lots more
The Following 38 Users Say Thank You to Xileforce For This Useful Post: [ View ] Gift Xileforce Ad-Free
13th July 2015, 09:10 AM |#3  
Xileforce's Avatar
OP Senior Member
Thanks Meter: 3,141
 
Donate to Me
More
FAQ's

1. What Is VControl And How Do I Use It?:
VControl is a kernel tweaking "app" built into the ramdisk. It is accessed via terminal emulator. To use it simply download terminal emulator, Type "su" without quotes and hit enter. Grant terminal emulator super user permission and then type "VControl" without quotes. Please note that it is case sensitive. This will bring up a text menu and you navigate by simply entering the option number you want and hitting enter. It is currently a WIP. More will be added to VControl over time.

2. 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 proc/last_kmsg.

3. What Kernel Tweaking App Should I Use?:
To Tweak the kernel, currently the only apps that work well are Kernel adiutor and Kernel toolkit as well as synapse. You can also use VControl for a limited number of things. Synapse is now built into the kernel so simply install the app.

4. What Do Power Efficient Workqueues Do?:
Typically when a task is created, it is bound to the cpu it was created on. This is great for performance due to maintaining cache locality. However its not the best for battery life. Power efficient workqueues attempts to schedule tasks on already awake cpus. A quick note about awake and sleeping cpus. A sleeping cpu doesnt mean the cpu is turned off or not hotplugged, nor does this mean it has to be deep sleeping. A core can be online and still be sleeping which means it uses very little power. This is why we are able to run with all 8 cores on all the time. Most of the time the majority of the cpus are sleeping. With power efficient workqueues, jobs will attempt to schedule on awake cpus which means we dont have to wake up the cpus that are sleeping already. This means we lose cache locality so we suffer a small (very small) performance hit but we potentially save noticeable amounts of battery. Enable for battery, disable if you plan on benchmarking or just want the extra power. They are off by default.

5. 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/....html#benefits

6. What does Small CPU Task Packing Mean?:
Task packing Is a process done by the scheduler. What it tries to do is pack all tasks onto as few cores as possible. In this case, it only packs tasks for the low power(small) cores as we want to maintain maximum performance and spread the load out on the bigger cores. The advantage of packing tasks is that if we envision a scenario where there is a 40% load and that gets spread out across the 4 small CPUs at 10% load each all 4 small CPUs are awake and running at a low frequency. With task packing all 40% would be shoved onto 1 core and the other 3 would sleep. This provides energy savings. However there becomes a point where the frequency required to process the extra tasks becomes high enough that it would use less power to run two cores at half the speed rather than 1 core at a very high speed. In this scenario the scheduler will automatically let tasks spill over onto adjacent CPUs in order to maximize power efficiency. One down side to this is a small performance hit due to having to pull the other cores out of a sleep state in the event of needing immediate power. However I would guess most people couldn't notice a difference.

7. What is power aware scheduling?:
Power aware scheduling is a method of scheduling where we make the scheduler aware of the actual efficiency of the cores. As you know, the small cores are more efficient than the big cores. The existing method for scheduling work uses a more basic (if the load is above this point, then move it to the big cores) type of decision making. With power aware scheduling, the scheduler will schedule tasks based on its knowledge of the cores power efficiency. Typically this reduces performance, though it's likely not noticeable except for in some games. If you want more battery, enable this. If you want more performance or have lag in games disable.

More will be added as they come up and I think of them.
The Following 25 Users Say Thank You to Xileforce For This Useful Post: [ View ] Gift Xileforce Ad-Free
13th July 2015, 10:23 AM |#5  
matheus_sc's Avatar
Senior Member
Flag Barretos-SP
Thanks Meter: 606
 
Donate to Me
More
Great, downloading for test, my device is i variant but should works fine, any recommend settings?
The Following User Says Thank You to matheus_sc For This Useful Post: [ View ] Gift matheus_sc Ad-Free
13th July 2015, 10:39 AM |#6  
Xileforce's Avatar
OP Senior Member
Thanks Meter: 3,141
 
Donate to Me
More
Quote:
Originally Posted by matheus_sc

Great, downloading for test, my device is i variant but should works fine, any recommend settings?

I personally use VControl to set my min freq to 200 for both, then I oc to 1600 on Apollo and 2200 on atlas. I then also disable fsync. That's it :P hope you like it! Let me know if you have any issues!
The Following User Says Thank You to Xileforce For This Useful Post: [ View ] Gift Xileforce Ad-Free
13th July 2015, 10:42 AM |#7  
Senior Member
Thanks Meter: 35
 
More
great job with another kernel!
I enabled CPU task packing, but when I check the current settings, it says "/sbin/VControl(239): cat: /sys/kernel/hmp/packing_enable: No such file or directory"
The Following User Says Thank You to interestingkid For This Useful Post: [ View ] Gift interestingkid Ad-Free
13th July 2015, 10:46 AM |#8  
Xileforce's Avatar
OP Senior Member
Thanks Meter: 3,141
 
Donate to Me
More
Quote:
Originally Posted by interestingkid

great job with another kernel!
I enabled CPU task packing, but when I check the current settings, it says "/sbin/VControl(239): cat: /sys/kernel/hmp/packing_enable: No such file or directory"

Thanks! Yea I had task packing enabled in a previous test but removed it prior to release. I decided to leave it in VControl in case I re add it. So just ignore it for now :P I'll probably remove it in r2

Sent from my SM-G920T using XDA Free mobile app
13th July 2015, 10:49 AM |#9  
Senior Member
Thanks Meter: 35
 
More
Quote:
Originally Posted by Xileforce

Thanks! Yea I had task packing enabled in a previous test but removed it prior to release. I decided to leave it in VControl in case I re add it. So just ignore it for now :P I'll probably remove it in r2

Sent from my SM-G920T using XDA Free mobile app

ok, that's fine, because this is running well for now!

---------- Post added at 09:49 AM ---------- Previous post was at 09:48 AM ----------

ok so another problem though with google account or play services, don't know which
when i tried to install an app from the play store, i get an error -504
13th July 2015, 10:52 AM |#10  
Xileforce's Avatar
OP Senior Member
Thanks Meter: 3,141
 
Donate to Me
More
Quote:
Originally Posted by interestingkid

ok, that's fine, because this is running well for now!

Glad to hear that! There's definitely still room for improvement.

Sent from my SM-G920T using XDA Free mobile app
The Following User Says Thank You to Xileforce For This Useful Post: [ View ] Gift Xileforce Ad-Free
13th July 2015, 10:52 AM |#11  
matheus_sc's Avatar
Senior Member
Flag Barretos-SP
Thanks Meter: 606
 
Donate to Me
More
Boots fine in i variant from Brazil, but dont show much option in kernel auditor. I cant change i/o for fiops too its normal?
The Following User Says Thank You to matheus_sc For This Useful Post: [ View ] Gift matheus_sc Ad-Free
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes