[Kernel] Vindicator [AOE3] [Strict-Aliasing/UberTC/Loop-Nest] [-R3-] - T-Mobile Samsung Galaxy S6

Vindicator Kernel
Intro:
This is the first Samsung 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 really 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, Imoseyon, Ktoonsez, 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:​-AOE3 Source Based
-ONLY TESTED ON TMOBILE VARIANT
-VControl Kernel Control Script(Loosely Based On lkconfig by imoseyon)
-Compiled With Uber ToolChain 4.9
-Compiled With Strict-Aliasing, A53/57 Tweaks, And Loop Nest Optimizations
-Various Other Build Optimizations
-WLAN_RX & WLAN_CTRL Wakelocks Reduced
-Optional GPU OC To 772Mhz
-A53 UnderClockable To 200Mhz, Overclockable To 1.6Ghz
-A57 UnderClockable To 200Mhz, OverClockable To 2.5Ghz
-Slub Allocator Updated To Linux 3.18
-GPU Slightly UnderVolted
-Small CPU Task Packing
-Nvidia Power Efficiency Patches
-GPU Voltage Control
-LED Fade Control
-Deep sleep fix
-Optimized Power Coefficients
-FSync Toggle
-Memory Leak Patches
-Sleep/Suspend Patches
-3X Faster Integer Square Root Operations
-Interactive Wont Scale Up Below 5% Load
-HRTimer Optimizations
-Avoid load Average Moire
-Scheduler Optimizations
-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
-FIOPS, CFQ, NOOP & BFQ IO Schedulers
-Tons Of IO Fixes/Performance Boosts
-Voltage Control
-Entropy Optimizations/Tweaks
-Optimized RWSEM
-Many Parts Pulled From Upstream
-Init.D Support
-Installs SU
-Potentially Something I Forgot...
Downloads:
[AFH] Kernel: https://www.androidfilehost.com/?w=files&flid=32684
Credits:
Imoseyon
Ktoonsez
AndreiLux
G.lewarne
Samsung
Flar2
anarkia
hybridmax
Franco
Faux123
Linaro
Code Aurora Foundation
Cl3Kener
Google
Motorola
If I Missed You Lemme Know!​
XDA:DevDB Information
Vindicator Kernel, Kernel for the T-Mobile Samsung Galaxy S6
Contributors
Xileforce
Source Code: https://github.com/XileForce/Vindicator-S6
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: R3
Created 2015-05-30
Last Updated 2015-05-30

Changelog:
R1:
-Initial Release
R2:
-CPU Task Packing For A53 Cores(Read In FAQ)
-Numerous Patches To HMP From Linaro(This controls how and when tasks are moved from big to LITTLE CPUs)
-CPUIdle Improvements
-GPS Fix(Thanks To Glewarne)
-Increase hash table size on futexs for better performance
-Tweaked Interactive Governor Values A Bit
-Additional Compile Time Optimizations
-Fix VControl Set On Boot
-Add Toggle For Task Packing To VControl(Currently Not Working :/ )
R3:
-Updated To Linux 3.10.67(From .61)
-Made binder mutex instead of rtmutex(less stutter)
-Reduce packing limit. (This will load the CPUs less before spreading load. Actually improves battery and performance)
-Some upstream cpuidle improvements
-Reduce preempt latency
-Optimize scheduler modules with maximum compiler optimizations
-Increase AES interleave to 4x(for encrypted people this showed a performance improvement of 37% on an A57 processor which is our Atlas cores)
-Use high priority workqueue for devfreq which is related to the GPU
-Scheduler considers cost of balancing and doesn't overestimate average anymore
-Small micro optimizations
-Improve Low Memory Killer routines patch from neobuddy89
-Add rbtree optimizations to LMK. (Significantly improves LMK performance)

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. FSync control and Power Efficient Workqueues don't currently set on boot properly 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 app that works well is KTweaker. To get KTweaker simply flash ktoonsez kernel which will install the app, then flash this. You will have the app unless you wipe data. You can also use VControl for a limited number of things
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/articles/2006/06/understanding-strict-aliasing.html#benefits
6. What Does Moto QuickWakeup Do?:
QuickWakeup is a driver developed by motorola which increases battery life when the screen is off. It allows for only the modules which need to be woken up during sleep to wake up, thus conserving power.
7. 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 FETs 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.
More will be added as they come up and I think of them.

Annndd one more

Please note that this is only tested on the smg920T model. I have no idea if it will work on others

Works well thank you!

guaneet said:
Works well thank you!
Click to expand...
Click to collapse
Happy to hear that sir! You are the only other person to have tried it so far so that's good news. BTW. Idk what AVS# you are but I'm an 11 and I have stably undervolted by 75 for the A53 cores and 50 for the A57s. Maybe that will help someone.

Xileforce said:
Happy to hear that sir! You are the only other person to have tried it so far so that's good news. BTW. Idk what AVS# you are but I'm an 11 and I have stably undervolted by 75 for the A53 cores and 50 for the A57s. Maybe that will help someone.
Click to expand...
Click to collapse
I like your ideology behind this kernel. Totally reminds me of imosyen nice to see another dev here! I tend to keep my volts as is. I always have problems
Would also like to say that this kernel is best one for my phone so far! Haven't noticed anything but stability. Thanks

guaneet said:
I like your ideology behind this kernel. Totally reminds me of imosyen nice to see another dev here! I tend to keep my volts as is. I always have problems
Click to expand...
Click to collapse
Haha. My first kernel I ever made was for nexus 6 based on his lean kernel so that's what I learned on. In fact I believe I've got almost all the stuff removed that he has removed back on nexus 6 plus even more that I've found. I'm a firm believer that less is very often more. Expect more trimming down in the following builds.
Sent from my SM-G920T using XDA Free mobile app

Xileforce said:
Haha. My first kernel I ever made was for nexus 6 based on his lean kernel so that's what I learned on. In fact I believe I've got almost all the stuff removed that he has removed back on nexus 6 plus even more that I've found. I'm a firm believer that less is very often more. Expect more trimming down in the following builds.
Sent from my SM-G920T using XDA Free mobile app
Click to expand...
Click to collapse
Well now I know I'll be in good hands ?
I've been following him since the note 3 days.
Can't wait to see where you take this project!

guaneet said:
Well now I know I'll be in good hands ?
I've been following him since the note 3 days.
Can't wait to see where to take this protect!
Click to expand...
Click to collapse
Well I hope you like it! I'll leave you alone now lol.
Sent from my SM-G920T using XDA Free mobile app

Downloading and testing now. Not really related, but I was wondering if power save overrides cpu clock/gov/anything else? The reason I ask, is that I typically underclock or undervolt a bit to save some battery but keep in normal high performance state with PS off. But if PS mode does this anyway, I shouldn't bother should I?
Wow, that 3rd post (FAQs) was super-informative!
Sent from my SM-G920T using XDA Free mobile app
Edit: Everything seems to be running perfectly fine so far. Charging up so I can see how the battery life is. I'm currently on OZOP's ROM.

welcome to the lonely S6 kernel devs club!
ive sent you a pm

benjmiester said:
Downloading and testing now. Not really related, but I was wondering if power save overrides cpu clock/gov/anything else? The reason I ask, is that I typically underclock or undervolt a bit to save some battery but keep in normal high performance state with PS off. But if PS mode does this anyway, I shouldn't bother should I?
Wow, that 3rd post (FAQs) was super-informative!
Sent from my SM-G920T using XDA Free mobile app
Edit: Everything seems to be running perfectly fine so far. Charging up so I can see how the battery life is. I'm currently on OZOP's ROM.
Click to expand...
Click to collapse
To be honest I dont know specifically what power save mode does. I've only had the phone for like 6 days. Ik ps limits frame rate and stuff like that so You will save additional power beyond Running in normal mode, but I'm not sure how it affects cores and frequencies currently. This phone is a whole different beast than my nexus 6...I would like to add more, lower frequency steps to save more power. Glad to hear you are liking it so far though! And I plan on adding a configuration guide of sorts in my 4th post with more detail on the controls available . I also plan on getting synapse working properly as that will enable significantly easier kernel tweaking.
Sent from my SM-G920T using XDA Free mobile app

g.lewarne said:
welcome to the lonely S6 kernel devs club!
ive sent you a pm
Click to expand...
Click to collapse
Thank you! Your build script and zip file were a massive help to me. This is completely different from building for a nexus. And I'm not too worried yet the device is little over a month old. I'm hopeful we will see more development start to come. I tried to use your new script setup but I couldn't get it booting for some reason. I'll have to revisit it. I'm sure I didn't something wrong. I'm a Noob.
Sent from my SM-G920T using XDA Free mobile app

Oh em gee! Im switching to tmo!!!!!! Lol j/k...Glad to see you here Xile! If anyone here likes bleeding edge performance and stability, Vindicator is the kernel for you!!!

Custodian said:
Oh em gee! Im switching to tmo!!!!!! Lol j/k...Glad to see you here Xile! If anyone here likes bleeding edge performance and stability, Vindicator is the kernel for you!!!
Click to expand...
Click to collapse
Lol once I wrap my head around all these different variants I'll try and get a build working for the edge. Took me days just to get call audio working
Sent from my SM-G920T using XDA Free mobile app

Xileforce said:
Lol once I wrap my head around all these different variants I'll try and get a build working for the edge. Took me days just to get call audio working
Sent from my SM-G920T using XDA Free mobile app
Click to expand...
Click to collapse
I know there's a unified method that ktoonz and a few others use/developed, reach out to him for assistance! However, just out of curiosity I flashed this baby on top of sac and ram deodexed rom for the s6 edge sprint variation and it works lol....only issue ive noticed so far is the "storage message" keeps popping up.

Custodian said:
I know there's a unified method that ktoonz and a few others use/developed, reach out to him for assistance! However, just out of curiosity I flashed this baby on top of sac and ram deodexed rom for the s6 edge sprint variation and it works lol....only issue ive noticed so far is the "storage message" keeps popping up.
Click to expand...
Click to collapse
O_O that's suprising...ik there's some differences...hmm...well then. And I am going to try and get their method working soon. I tried to get it working earlier and got it compiling correctly but couldn't get it to boot sadly I will revisit it.
Sent from my SM-G920T using XDA Free mobile app

Going to give your kernel a run today and see how it goes! Always love to see more options around here.
I'm curious about the memory leak(s) you say you've patched. I wasn't really aware of any on the kernel side, can you give a bit of explanation here?

Related

Emphasis on BFS

Hello everyone,
I'm the maintainer of the Liquorix kernels for Debian / Ubuntu in the linux world. By default, this kernel is setup to use BFS, plus all the other patches from zen-sources and a finely tuned configuration to reduce overhead and increase throughput / reduce latency.
I recently bought the Nexus One to replace my old phone and have been fumbling around the forums, just looking around and putting on mods like Cyanogen. Just skimming through the selection of kernels, I'm very surprised.
How come CFS is still the scheduler of choice? Many users have exclaimed in posts about the increase in speed and fluidity - very much the same reaction for users switching to my kernels on Debian. The only developer here using BFS seems to be kingslick, but I don't know which version of the kernel he's using exactly, it just says 2.6.33 even though 2.6.33.2 is out per the day of this posting.
How come there has been a slow uptake on the BFS scheduler? Is it difficult to patch, not enough feed back, instability, etc... ???
That would explain why his kernels always seem lightning quick, lol.
Where do you see King using BFS. In his Nexus Desire Rom he states in the OP he has switched back to CFS
if i remember correctly atleast when I was using the g1 bfs was causing instability issues, I dont think i've heard anything about bfs on the nexus so I cant say one way or the other why it isn't used more often.
BFS used to be good on the ARM architecture, but not anymore. Its instable and actually slows down the phone.
which version is unstable? Since the 300 series of BFS, the final stability bugs were fixed AFAIK.
damentz said:
which version is unstable? Since the 300 series of BFS, the final stability bugs were fixed AFAIK.
Click to expand...
Click to collapse
and the 300 series runs poorly on our phones
*puts up hand* whats bfs?
dogiedogie said:
*puts up hand* whats bfs?
Click to expand...
Click to collapse
BFS = Brain **** Scheduler. It controls the CPU and other processes at the kernel level
dogiedogie said:
*puts up hand* whats bfs?
Click to expand...
Click to collapse
these might help:
http://ck.kolivas.org/patches/bfs/bfs-faq.txt
http://ck.kolivas.org/patches/bfs/sched-BFS.txt
persiansown said:
and the 300 series runs poorly on our phones
Click to expand...
Click to collapse
Where can I find a forum thread discussing this? I've been only seeing good things, not bad.
http://www.google.com/search?q=BFS+site:xda-developers.com
As you can see there were many BFS roms earlier (3xx version too), but nearly all developers switched back to CFS cause of stability problems.
I'm seeing a lot of ports to 2.6.29 for BFS. If those are amateur ports, I would expect instability and unpredictable bugs.
BFS is always moving forward and the newer versions are based off of the currently stable kernel, in this case, 2.6.33 at the time of this posting.
damentz said:
I'm seeing a lot of ports to 2.6.29 for BFS. If those are amateur ports, I would expect instability and unpredictable bugs.
BFS is always moving forward and the newer versions are based off of the currently stable kernel, in this case, 2.6.33 at the time of this posting.
Click to expand...
Click to collapse
Pretty much every single Kernel developer has given BFS a go, and all of them have had the same end result. Even Cyanog and pershoot.
damentz said:
Where can I find a forum thread discussing this? I've been only seeing good things, not bad.
Click to expand...
Click to collapse
I generally talk about it in IRC
I spoke with Con about the poor performance post 200 series on these Android phones, and he said that he wasn't aware of anything changed since then.
...but also, no one had brought these bugs to his attention, so nothing got fixed.
If anyone's willing to maintain a BFS kernel for android with the newest upstream code, I can test it and try to identify what the problem might be. There's a very large potential for performance to increase on the android platform if BFS becomes the optimal choice - we cannot let this slip unnoticed!
BFS is poorly suited to android.
Reason is this:
Android has a timeout function -- when an application takes too long to respond, it issues an "application not responding" dialog. This includes BACKGROUND processes. BFS, of course, favors FOREGROUND processes, so when you have a foreground process sucking up all the CPU (because BFS is unwilling to give over the necessary CPU time to the background processes), those background processes end up taking longer than the timeout allows, which means that any time you run a CPU intensive foreground process, all the background processes will go ANR.
CFS doesn't have this problem. Background processes will still get their fair share of CPU time.
Remember that these devices are PHONES first and foremost! If the phone rings, the process handling the phone ringing MUST be able to run in a sensible amount of time.
I remember BFS on Cyanogen back with the G1. It actually did give a pretty quick feeling phone. Like others said, it had its stability issues though.
But, maybe you can talk one of the kernel devs (intersectRaven or Ivan or pershoot or someone) into maintaining a separate BFS kernel along with the ones they already do. They might turn it down as its alot of extra work.. but, you never know!
I'd be willing to test the kernels out on my phone if someone was willing to actively maintain one for testing.
lbcoder said:
BFS is poorly suited to android.
Reason is this:
Android has a timeout function -- when an application takes too long to respond, it issues an "application not responding" dialog. This includes BACKGROUND processes. BFS, of course, favors FOREGROUND processes, so when you have a foreground process sucking up all the CPU (because BFS is unwilling to give over the necessary CPU time to the background processes), those background processes end up taking longer than the timeout allows, which means that any time you run a CPU intensive foreground process, all the background processes will go ANR.
CFS doesn't have this problem. Background processes will still get their fair share of CPU time.
Remember that these devices are PHONES first and foremost! If the phone rings, the process handling the phone ringing MUST be able to run in a sensible amount of time.
Click to expand...
Click to collapse
That's dumb, CFS is the scheduler that is unfair. CFS uses a red black tree with interactivity heuristics to create a timeline for processes to run for a specific amount of time. BFS on the other hand uses deadlines to choose which process runs next, using absolutely no heuristics. The shortest deadline should run first unless a process with a lower nice value preempts it.
I would expect BFS to be more responsive with your tests, since no application should be starved from heuristics. That's why it also performs better with games and 3d applications, since the cpu time is given fairly and in steady amounts, allowing for a more enjoyable graphical experience.
BFS should also run much faster on slower cpus because it has very low execution runtime memory footprint. I remember when BFS was first starting, one of the lesser known difference between BFS and CFS were the cache misses on CPUs with low amounts of L2 cache. Of course, no one put these online since it was just fun to experiment with.
But, maybe you can talk one of the kernel devs (intersectRaven or Ivan or pershoot or someone) into maintaining a separate BFS kernel along with the ones they already do. They might turn it down as its alot of extra work.. but, you never know!
Click to expand...
Click to collapse
Yes, that would be cool. I'll also help with these kernels and get some of the most technically helpful bug reports to Con so these bugs can be fixed once and for all.
Compiled a BFS kernel as per your request. It can be found on my MediaFire folder. Not really sure if BFS is active though since I only found one entry in menuconfig which is in the general section and not where I expected it to be (with CFQ and Deadline options).
*Just read more...I was confusing CFS with CFQ...

[MOD][KERNEL] Live OC

We all know Morfic's popular TEUV kernel which features a low maximum frequency of just 880MHz, but still shows an excellent performance. The secret sauce is the increased bus speed of 220MHz compared to the stock frequency of 200MHz. The problem is that every Nexus S behaves differently because of production tolerances for the CPU and not all devices are able to handle this increased bus speed.
Thus it would be nice to have some way for the user to individually adjust the bus speed to match the overclocking capabilities of their device. Unfortunately with TEUV the bus speed has to be defined on compilation time thus the only way would be to release different versions with different bus speeds which, frankly, would be a pain in the ass. So I implemented a way to change the bus speed on-the-fly while the device is running. In contrast to TEUV not only the bus speed for the maximum frequency but for all states is increased by the same percentage (might change this later, especially for the minimum state).
In '/sys/class/misc/liveoc' change the performance by passing a value from 100 to 120 to 'oc_value' (100 = stock performance, 120 = +20% performance; 100 is default). The bus speed and frequencies for all states will be adjusted accordingly.
I am currently running my Nexus with an increased performance +10% using the stock frequencies 100->110, 200->220, 400->440, 800->880 and 1000->1100 and after increasing the voltage for the maximum state by 25mV 30mV everything is working fine without a reboot for 24h now. The battery drain however seems to be pretty high so it might be a good idea to leave the lowest frequency state untouched. Time and your feedback will tell. Seems like the sleep frequency fix also took care of the high battery drain.
Changes to the source: http://www.pastie.org/2634833
BUGFIX:
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
BUGFIX #2:
When OC value is changed, the minimum and maximum frequency limits set by the user are adjusted according to the new frequencies.
Bugfix: http://www.pastie.org/2691219
BUGFIX #3:
Made sure the bus speeds and frequencies are not changed while a frequency change is currently ongoing.
Bugfix: http://www.pastie.org/2710098
BUGFIX #4:
Instead of a spin lock (which leads to problems) we use a mutex to make sure the bus and frequencies are not changed while a frequency change is ongoing.
Bugfix: http://www.pastie.org/2710386
BUGFIX #5:
If no mutex lock can be obtained, an error value is returned to inform the caller that the frequency was not changed.
Bugfix: http://www.pastie.org/2746226
BUGFIX #6:
1. Reverting back to mutex_lock to make sure no important request like enabling/disabling further frequency changes are skipped.
2. The mutex is unlocked before the CPUfreq stats are resetted. With the above modification this seems necessary to avoid lockups when changing the OC value.
3. The frequencies and bus speed are updated only when the selected OC value actually did change.
Bugfix: http://www.pastie.org/2756640
BUGFIX #7:
Maximum OC value increased to 150.
Bugfix: http://www.pastie.org/2768535
No further patches will be published here. I have set up a git repo for all my tweaks. Each mod has its own branch to keep the tweaks cleanly separated and one can simply pull the latest patches from the corresponding branch.
https://github.com/Ezekeel/GLaDOS-nexus-s/tree/liveoc
Thanks to Morfic for his help.
What are creative guy…so many useful mod. Great!!
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
Just when I start to think what else can this guy come out with.. lol
Trying it now
Sent from my Nexus S 4G using Tapatalk
Is the liveoc file just included in morfic teuv kernel???
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
kevinngck1 said:
Is the liveoc file just included in morfic teuv kernel???
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
Click to expand...
Click to collapse
Morfic's TEUV kernel was the inspiration for this mod. It is not implemented in any kernel yet.
The first bugfix.
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
Pretty impressive idea and implementation.
Although I don't have this phone (hope to get one soon as it's for a great price here in Portugal), I stumbled upon this thread and I liked it very much. Keep it up!
This is eactly what I want!!!
You're my hero
Ezekeel said:
We all know Morfic's popular TEUV kernel which features a low maximum frequency of just 880MHz, but still shows an excellent performance. The secret sauce is the increased bus speed of 220MHz compared to the stock frequency of 200MHz. The problem is that every Nexus S behaves differently because of production tolerances for the CPU and not all devices are able to handle this increased bus speed.
Thus it would be nice to have some way for the user to individually adjust the bus speed to match the overclocking capabilities of their device. Unfortunately with TEUV the bus speed has to be defined on compilation time thus the only way would be to release different versions with different bus speeds which, frankly, would be a pain in the ass. So I implemented a way to change the bus speed on-the-fly while the device is running. In contrast to TEUV not only the bus speed for the maximum frequency but for all states is increased by the same percentage (might change this later, especially for the minimum state).
In '/sys/class/misc/liveoc' change the performance by passing a value from 100 to 120 to 'oc_value' (100 = stock performance, 120 = +20% performance; 100 is default). The bus speed and frequencies for all states will be adjusted accordingly.
I am currently running my Nexus with an increased performance +10% using the stock frequencies 100->110, 200->220, 400->440, 800->880 and 1000->1100 and after increasing the voltage for the maximum state by 25mV everything is working fine without a reboot for 24h now. The battery drain however seems to be pretty high so it might be a good idea to leave the lowest frequency state untouched. Time and your feedback will tell.
Changes to the source: http://www.pastie.org/2634833
BUGFIX:
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
Thanks to Morfic for his help.
Click to expand...
Click to collapse
very nice.
i wonder why the increased battery drain. are you still getting similar numbers in setcpu's "time in state" as you were with teuv?
My goodness! Ezekeel! You're just that excellent!
Nice idea, although I don't have a nexus S, (thanks @tapatalk for showing me this thread)
Ezekeel said:
Morfic's TEUV kernel was the inspiration for this mod. It is not implemented in any kernel yet.
Click to expand...
Click to collapse
I'll need some time to wedge this in.
Check why the compile fails after adding the failed hunks (looks like possibly missapplied fuzzy hunk)
Aside i would want it to work with each kernel type, be it TEUV, TUV or T12, T13, T144 or T1544
Since that is all layed out as Kconfig options i'll have to check where to apply the code you added to stock source so it will indeed work for all the speeds, kind of as a added bonus to the current speeds.
Then i would have to shoehorn in a voltage control and OCing without voltage control is not a good idea, 1.0GHz has some obvious headroom, but the OC speeds especially will want a nudge on the voltage side if you nudge the bus/cpu/gpu across the board by x%
and with kernel.org up (not android.git.kernel.org (unless we android geeks just totally hammered it)) i would prefer to grab latest samsung source, freshen up all builds, then work on integrating this.
I could see the netarchy layout benefit from this patch as there are no Kconfig #ifdef to deal with (I'm looking at you mathkid ;P lol hah! coo <3)
Just a little timeframe setter to tune the expectations to a realistic level.
Thanks Ezekeel
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Ezekeel said:
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Click to expand...
Click to collapse
Very nice.
Told you those hummingbirds are picky about their sleep freq
Now we know OCing it causes high drain instead of the typical SoD when no high enough clock is available.
Ezekeel said:
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Click to expand...
Click to collapse
imagine that..
a better sleep makes a happier kernel
Dude, ezekeel do you ever sleep or think about anything other than making our phones more powerful? How can so much utility come from one guy and why are you not employed by the government finding new and exciting ways to kill people. Imo you deserve a massive salary with a brain like yours.
Sent from my Nexus S MV from the XDA Premium app.
kenvan19 said:
Dude, ezekeel do you ever sleep or think about anything other than making our phones more powerful? How can so much utility come from one guy and why are you not employed by the government finding new and exciting ways to kill people. Imo you deserve a massive salary with a brain like yours.
Sent from my Nexus S MV from the XDA Premium app.
Click to expand...
Click to collapse
He codes on the job, i think that makes a big difference on the time availability front.
Any news or update?
Seems no kernel has added this mod
Really want to have a try
It 's coming to Matr1x..
Sent from my Nexus S using XDA App
Its here!!! Matr1x 8.5
Sent from my Nexus S using XDA App

[KERNEL][codename:BFS returns 0.09][Jul.24][Based on Air kernel 4.4][BFS][UKSM]

Q: Are you Dead?
A: No. But on these day, I'm do something else (learning C/Python). I will come back in some day.
This is an experimental kernel based on the latest Air kernel(v4.4). I patched and re-config the kernel for testing and/or for fun.
My patches will never ever comes into other kernels.
1. using ext4 subsystem for ext2/3.
A very funny thing is Air kernel enabled "using ext4 subsystem for ext2/3", but independent ext2 support enabled, too.
I know It is insignificant for the performance. But that makes me feel sick So I disabled independent ext2 support to get a smaller(0.5kb lower?) kernel.
2. using the BFS scheduler.
For small systems, the default scheduler - CFS, is a very complex things, and complex code cause a low performance in embedded systems. BFS is a simple scheduler for embedded systems. It can makes the CPU go faster. In fact, some people think it makes Android UI slower than before.
BFS is written by Con Kolivas.
For more information, you can visit Con Kolivas blog: http://ck-hack.blogspot.com/
3. UKSM
Linux kernel uses KSM to merging same pages for KVM virtual machine. Cyanogenmod modified Android, so KSM can work with Dalvik too. And we can get more RAMs. UKSM is a new project, it more powerful than KSM. It works without any modify. UKSM will scan all data in memory and merge them.
UKSM is a Chinese project, and it's still in development.
You can visit http://http://kerneldedup.org/en to learn more. But there only one page is available in English now.
Usage of UKSM: http://kerneldedup.org/en/projects/uksm/uksmdoc/usage/
4.Deadline for default I/O scheduler. (In v0.06)
CFQ cause low boot performance and missing app icons on my phone. So I set deadline for default scheduler.
WARNING: Don't use it with Jelly Bean, if you do it, your phone will unable to boot, unless you flash a Jelly Bean's kernel.
Latest version
The latest version is v0.09.
All version (included broken/buggy kernel) downloads: http://biergaizi.info/pub/
Voodoo color
It has Voodoo color only(no 65fps or blue color)
Download: http://biergaizi.info/pub/[BFS returns][Air kernel 4.4][0.09][voodoo-color].zip
65fps+Blue color
It has 65fps + blue color.
Download: http://biergaizi.info/pub/[BFS returns][Air kernel 4.4][0.09][65fps+blue].zip
Known Issue:
1.Random crashes/reboots.
Note1: I think it's a upstream issue.
Note2: Issue 1 was no longer exist in v0.06
Found a bug?
If you phone is crashed or auto-rebooted, please type this command after you first reboot:
cat /proc/last_kmsg > /sdcard/kernel_log.txt
Then you can find a file in your sdcard(usb mass storage) and its name is kernel_log.txt
Please reply and upload it for attach file, it can help me to solve the problem.
The source code is available from patches, sources on Github will remove soon:
http://biergaizi.info/pub/sources/
About the version number:
My zips' name are follow these rules:
[BFS returns][Air kernel x.x][x.x][voodoo-color]
.......^...............^.............^...........^
..Codename..Based on what...Main.....voodoo-color or
.....................version of....version....65fps+blue color
.....................Air kernel.....number
For example, [BFS returns][Air kernel 4.4][0.05][voodoo-color] is stand for:
the kernel's codename is 'BFS returns', based on Air kernel 4.4, the main version number is 0.05, and this kernel is a voodoo-color-kernel.
And I must talk about the main version number:
...x.........................xx..................x...............-...x.
...^..........................^..................^..................^
."Milestone".............times of.............small fix for.....complied version or zipped
version with major.....small changes......this release...version (changed kernel
....changes..........................................................config, version of gcc,
.........................................................................or fixed a broken zip file)
For example:
0.05 is stand for no major changes, and the fifth time of release with small changes, no small fix for it, just complied one time.
Q&A:
What is a scheduler?
Your computer often has 1-8 CPUs only, a CPU can do one thing in one time only. But you can run 500 processes on it. Why? Because scheduler switches processes. For example, You have 1 CPU only, and you opened 100 processes, scheduler will let one process run some time, and interrupt it, then let the next process run. So, there is a single process running only. But CPU is very fast, and scheduler switches them quickly, so you can't feel it.
How long does the scheduler let one process run? Different schedulers have different answers. But all of them are using algorithms to schedule process rational.
The history of CFS & BFS?
5 years ago, there was a scheduler called CFS. It's a very high performance scheduler, so it replaced O(1) scheduler when it merged. Facts have proved that, it is really high performance, because it can use on a supercomputer with 4096 CPUs.
On a supercomputer, a priority is very important and useful. Because many people are connecting to the supercomputer and work on it, so, you must specify the priority to people, to share the resources fairly. CFS is this kind of scheduler: it has advanced priority system. Such as group scheduled, so we can specify the priority to every single user & usergroup.
But, Does the most people use the supercomputer??
For me, I still use a computer with legacy device: a Pentium M CPU sometimes. And I use SCMs, such as a MP3 player, or devices with ARM chips, such as routers, iDevices, and my Nexus S smartphone.
By design, CFS will use on everywhere. So, it can't optimize for the device you are use. For example, we still use a supercompuer to elaborate it: priority is important on the supercomputer, but how about on the SCMs or smartphones? There are only one user at the same time. But, CFS is trying to compute the priority of the users every second!! These things are useless on low-performance-devies, and cause the low performance. It really not optimized for the low-performance-devices.
So, Con Kolivas, the designer of CFS (he just wrote some paper for it, the developer is Ingo Molnár. He also is the developer of O(1), wroto CFS before Con Kolivas. Con Kolivas is very angry for that) wrote a new scheduler for low-performance-devices, called BFS, Brain **** Scheduler. Why Brain ****? Because it very easy and simple, and kind of stupid scheduler, but it can improve performance on low-performance-devices. It removed some "awesome" design, such as advanced priority, but a stupid and simple one, etc.
It really a bad scheduler for 8-core-systems, and a terrible scheduler for 16-core-systems. But a great system with single-core and dual-core. Con Kolivas said it will never be in to the mainline Linux kernel, because it isn't a general scheduler, but I will keep update for it outside the mainline kernel code.
But now, CFS is better than before too. Lots of people think, CFS is the winner now.
Tell me something about UKSM.
This is an improvement upon KSM.
Its new features:
1. Full system scan:
It automatically scans all user processes' anonymous VMAs. Kernel-user
interaction to submit a memory area to KSM is no longer needed.
2. Rich area detection:
It automatically detects rich areas containing abundant duplicated
pages based. Rich areas are given a full scan speed. Poor areas are
sampled at a reasonable speed with very low CPU consumption.
3. Ultra Per-page scan speed improvement:
A new hash algorithm is proposed. As a result, on a machine with
Core(TM)2 Quad Q9300 CPU in 32-bit mode and 800MHZ DDR2 main memory, it
can scan memory areas that does not contain duplicated pages at speed of
627MB/sec ~ 2445MB/sec and can merge duplicated areas at speed of
477MB/sec ~ 923MB/sec.
4. Thrashing area avoidance:
Thrashing area(an VMA that has frequent Ksm page break-out) can be
filtered out. My benchmark shows it's more efficient than KSM's per-page
hash value based volatile page detection.
5. Full Zero Page consideration(contributed by Figo Zhang)
Now uksmd consider full zero pages as special pages and merge them to an
special unswappable uksm zero page.
How to tweak UKSM?
http://kerneldedup.org/en/projects/uksm/uksmdoc/usage/
You are just add BFS patch to Air kernel, the kernel is useless, everyone can do it!!!
Yes, I am a patcher and a compiler. Some kernel in XDA, also just add some patch and small hack to improve proformance. And users will not compile their own kernels, right? I'm doing the same thing. I will do more work soon.
Catalog:
Jul.24.2012 | 0.09:
1. Backported Codel queue management algorith from Linux 3.5.
Jul.23.2012 | 0.08:
1. Updated kernel source to Linux 3.0.38!
P.S: This time I didn't just copy r_data's code, I did it by myself. Because r_data is working on Jelly Bean's kernel and forgot to update this kernel!
Jul.15.2012 | 0.07:
1. New UKSM patchset.
2. r_data just updated him version information.
Jun.28.2012 | 0.06:
1. New UKSM patchset.
2. Deadline for default I/O scheduler.
3. Based on real Air kernel 4.4, not 4.3 weekly.
Jun.23.2012 | 0.05:
1.Updated kernel source code to Air kernel 4.4.
2.ext2/3 mounted by ext4 subsystem.
3.UKSM replaced KSM.
Apr.09.2012 | 0.03:
1.Update kernel source code to Air kernel 3.9.5.
2.There are not High Bigmem/Non-High Bigmem versions, because I don't want to build 4 versions. And I don't know my kernel is a what version. I think it's a High Bigmem version.
3.Source code are not on Github yet.
Apr.08.2012 | 0.02:
1.Use r_data's config, a major update!
2.Based on Air Kernel 3.9
3.Fix a BFS of bug.
4.Source code are not on Github yet!
5.[Apr.09]Quickfix: Fix the bad zip file.
Apr.05.2012 | 0.01:
1.First release.
2.Based on Air Kernel 3.8
3.BFS kernel.
biergaizi said:
Catalog
Apr.05.2012 | 0.01:
1.First release.
2.Based on Air Kernel 3.8
3.BFS kernel.
Click to expand...
Click to collapse
I'm a huge fan of Air. I don't really get the idea of how BFS can improve an already awesome kernel, but I'll give it a try, and report back asap. Thanks for your work.
EDIT: Sorry, still not as smooth as Air. Going back to v3.8. Good job anyway. Cheers!
Sent from my Nexus S
apatal said:
I'm a huge fan of Air. I don't really get the idea of how BFS can improve an already awesome kernel, but I'll give it a try, and report back asap. Thanks for your work.
EDIT: Sorry, still not as smooth as Air. Going back to v3.8. Good job anyway. Cheers!
Sent from my Nexus S
Click to expand...
Click to collapse
I'm sorry for that. Because I just want to add latest BFS to the kernels for somebody who want to try it (included me). And I use Linux a long time, I just want to learn how to compile Android kernel.
But I can't get r_data's kernel config file, and I don't know his Email address. So, I write a terrible one. This kernel has lots of bugs. I think you was saw the version number of it, 0.01
I will still improve it.
Thanks.
I did a comparison of the performance of bfs and cfs a while back using the two kernels that provided both, Matr1x and GlaDOS. CPU scores improved with bfs but graphics deteriorated and i noticed UI lags with bfs. The results are still available to view on the kernel spreadsheet (see link in my signature).
kernels ; battery ; ROM ; gov/sched
Now with summaries in the first posts. Convenient for XDA app users!
Because BFS use interrupts for multitasking, so it cause UI lags. But the overall performance should improved I think.
Your test proved it. Thanks
biergaizi said:
because bfs use interrupts for multitasking, so it cause ui lags. But the overall performance should improved i think.
Your test proved it. Thanks
Click to expand...
Click to collapse
终于! 有个中国人开始写内核了, 支持支持~~~
biergaizi said:
Because BFS use interrupts for multitasking, so it cause UI lags. But the overall performance should improved I think.
Your test proved it. Thanks
Click to expand...
Click to collapse
I am curious... You said earlier you wanted to develop a kernel to use BFS... but then you said you "found" r_data's config file.... meaning he didn't give it to you, so you haven't actually "developed" anything... so that you can add a scheduler for users who typically don't use BFS.
By Bedalus' own own testing, the BFS causes some lags in UI functions, but "may improve overall system performance".
So I am curious; when there are well developed, and tested kernels like Matr1x, Glados, Steve Garon's, and the official Air Kernel with amazing performance, speed, smoothness and responsiveness, what benefit does your kernel offer?
I am a consummate kernel flasher, and guess I would like to know your sales pitch. You know benefits, etc.
While I try many kernels, I try none without some research first. and so far, sooner than later I return to Air Kernel for it's stability and responsiveness.
Thanks
Steviemac12 said:
I am curious... You said earlier you wanted to develop a kernel to use BFS... but then you said you "found" r_data's config file.... meaning he didn't give it to you, so you haven't actually "developed" anything... so that you can add a scheduler for users who typically don't use BFS.
.......
So I am curious; when there are well developed, and tested kernels like Matr1x, Glados, Steve Garon's, and the official Air Kernel with amazing performance, speed, smoothness and responsiveness, what benefit does your kernel offer?
Click to expand...
Click to collapse
C'mon, give the kid a break, he's got his heart in the right place
It's open source and on a git somewhere; he is also crediting r_data.
So although it still isn't a very compelling kang of the Air kernel, he hasn't done anything sleazy.
Sent from my Nexus S using xda premium
motorator said:
C'mon, give the kid a break, he's got his heart in the right place
It's open source and on a git somewhere; he is also crediting r_data.
So although it still isn't a very compelling kang of the Air kernel, he hasn't done anything sleazy.
Sent from my Nexus S using xda premium
Click to expand...
Click to collapse
My apology... never said he did anything "sleazy". Re-reading now, It came off a bit... well not exactly as I intended.
Just trying to understand where he is going with his project.
Again... biergaizi no offense intended. I think I am having sour grapes (jealous) because I wish I could learn to do what you guys do.
will give this one a try and maybe I can be more constructive.
Thanks Motorator for the kick in the pants..
I'm in the same boat as you in that I wish I knew how to code or at least compile some of this stuff.
Don't take it the wrong way. I didn't mean anything harsh; I just don't want young'uns like the OP to get discouraged.
Maybe this gets traction, or maybe it goes the way of most hobby coding projects. Whichever it is, we should at least let him try
Sent from my Nexus S using xda premium
motorator said:
I'm in the same boat as you in that I wish I knew how to code or at least compile some of this stuff.
Click to expand...
Click to collapse
+1 on this.
I've been hanging out in this forums and I'm getting an itch to start contributing as well, that is, contributing beyond merely test-driving their creations and actually coming out with something useful myself.
I even have the beginnings of a plan on how to go about it. Wish me luck!
apatal said:
I even have the beginnings of a plan on how to go about it. Wish me luck!
Click to expand...
Click to collapse
All the best with your plan. I hope you succeed and motivate us all to also take part :thumbup:
Sent from my Nexus S using xda premium
Nice try, and keep on going.
Steviemac12 said:
I am curious... You said earlier you wanted to develop a kernel to use BFS... but then you said you "found" r_data's config file.... meaning he didn't give it to you, so you haven't actually "developed" anything... so that you can add a scheduler for users who typically don't use BFS.
By Bedalus' own own testing, the BFS causes some lags in UI functions, but "may improve overall system performance".
So I am curious; when there are well developed, and tested kernels like Matr1x, Glados, Steve Garon's, and the official Air Kernel with amazing performance, speed, smoothness and responsiveness, what benefit does your kernel offer?
I am a consummate kernel flasher, and guess I would like to know your sales pitch. You know benefits, etc.
While I try many kernels, I try none without some research first. and so far, sooner than later I return to Air Kernel for it's stability and responsiveness.
Thanks
Click to expand...
Click to collapse
In Linux community, there are lots of people don't develop anything, but just compile the source code into binary. And do you know Zen Kernel? It just add other hacker's(not in mainline kernel)patches into it.
Why I can't do the same thing in XDA
qtwrk said:
终于! 有个中国人开始写内核了, 支持支持~~~
Click to expand...
Click to collapse
谢谢支持。看来Unicode还是很强大的。
-------------------------
Unicode is really a great characterset.
biergaizi said:
In Linux community, there are lots of people don't develop anything, but just compile the source code into binary. And do you know Zen Kernel? It just add other hacker's(not in mainline kernel)patches into it.
Why I can't do the same thing in XDA
Click to expand...
Click to collapse
Please accept my apology. Sometimes I talk out of my ass and this was one of those times.
Wish I could do what you are doing.
Sent from my Nexus S using xda premium
Just flashed this kernel and I think it's pretty snappy, I think basing it on Air Kernel is a good idea. I would say that this is something we're missing here in the NS forums is a Kernel based on BFS, I know most kernels come with the option of either, but a focused BFS kernel is certainly not a bad thing, I used to love it back in my days on the Desire.
I remember the days of compiling kernels for my Linux boxes when I was younger, I now just let updates decide what's best since I was constantly tinkering and getting it wrong.
toyface said:
Just flashed this kernel and I think it's pretty snappy, I think basing it on Air Kernel is a good idea. I would say that this is something we're missing here in the NS forums is a Kernel based on BFS, I know most kernels come with the option of either, but a focused BFS kernel is certainly not a bad thing, I used to love it back in my days on the Desire.
I remember the days of compiling kernels for my Linux boxes when I was younger, I now just let updates decide what's best since I was constantly tinkering and getting it wrong.
Click to expand...
Click to collapse
I'm using Linux everytime. And I'm carzy, I think install from source will get a high performance(because I was had a laptop with legacy hardware, compile packages with march= is really works). So, I using Gentoo, compile everything.
But I'm also a funs of Fedora.
If today I'm lazy to compile:
I will boot Fedora
Else:
I will boot Gentoo

[Kernel] MetalliKernel CM9-HWA a6 [150-1380mhz] [384mhz GPU] [7/5 - Feature List]

This kernel is built for and from codeworkx's CM9 with hardware acceleration.
Again this is for codeworkx's cm9.
One more time, this is for codeworkx's cyanogenmod 9.
Finally, this is for cm9 and cm9 only!
Don't let the "alpha" title fool you into thinking it's not stable... it is... It's only alpha because it's still in the "testing" phase.
Works on the P31XX. I don't know about other models.
FEATURES/CHANGES
Overclockable to 1.38GHz
Underclockable to 150MHz
GPU overclocked to 384MHz (highest possible without bottlenecking and battery waste)
Tuned OnDemand Governor (recommended)
Interactive Governor with time view concept (learns from your use and adjust parameters accordingly)
Wheatley Governor (optimized use of C4 state)
Hotplug Governor (turns of one of the cpus to save power when load is very low)
Pegasusq Governor (A better version of Hotplug, but experimental and not designed for our devices)
SIO scheduler for speed/performance with flash storage
Linaro Toolchain
Linaro optimizations and patches
Linaro makefile compiler flags
Makefile Optimizations to boost performance
Optimized CRC32
Optimized ARM RWSEM algorithm
Tiler Memory increased to 32MB (linaro)
Other Tiler patches/tweaks to improve 2D gpu performance
SLQB allocator
lib/string use glibc version for speed
lib/memcopy use glibc version for speed
lib/sha1: use the git implementation of SHA-1 and removed ARM sha1 routines
I/O backport from 3.2 linux kernel for less dirty throttling
Tweak CPUIDLE to enter deep sleep faster thus saving battery
LowMemoryKiller backported from 3.4 kernel
Disable GENTLE_FAIR_SLEEPERS for improved performance
Allow Deep Sleep to occur when media decoder is active allowing the cpu to shut off when playing music or video.
Allow MPU logic to power down when in deep sleep to save power.
Increased default readahead value to 1024KB for faster sdcard reads
A lot of stuff I probably forgot I did.
Also includes a ridiculous amount of bugfixes, patches, and tweaks that can found on my github commit log.
***Read Me***
DO NOT, UNDER ANY CIRCUMSTANCE, USE SETCPU PROFILES OF ANY KIND OR ANYTHING SIMILAR WITH THIS DEVICE. Things like screen off max frequency, temperature throttling, and others are already built in to the OMAP architecture. Using ANY profiles will ONLY lead to problems, instabilities, and battery drain.
***************
Let me know how it "feels" especially by default without overclocking or underclocking. Also I'd be interested in how the battery treats you. Thanks!
DOWNLOAD
a1 - http://goo.im/devs/Metallice/Tab2/MetalliKernel_CM9_a1.zip
a2 - http://goo.im/devs/Metallice/Tab2/MetalliKernel_CM9_a2.zip - Changes to: Wifi, GPU, Low Memory Killer, others
a3 - http://goo.im/devs/Metallice/Tab2/MetalliKernel_CM9_a3.zip - Changes to: ondemand, interactive, add wheatley, add pegasusq, deep idle, compiler flags, SDcard read, others
a4 - http://goo.im/devs/Metallice/Tab2/MetalliKernel_CM9_a4.zip - Changes to: Compiler flags, CPUidle, RCU, others.
a5 - http://goo.im/devs/Metallice/Tab2/MetalliKernel_CM9_a5.zip - reverts and bugfixes, use 10.1 ramdisk in 10.1 version
a6 - http://goo.im/devs/Metallice/Tab2/MetalliKernel_CM9_a6.zip - CLASSIFIED change, NEED feedback on speed, slowness, smoothness, and lag compared to stock and a5. Reverted some revets. Reverted changes to RCU to fix SODs. Graphics. For 10.1 fixed overclocking.
If you would like to overclock but your device can't handle it... and are willing to suffer through extreme battery drain to try this - Link
Thanks go out to - CodeworkX, Ezekeel, Francisco Franco, Imoseyon, Faux123, Fugumod, Sonicxml, Texas Instruments, Samsung, Google, and all the others I probably forgot about. Sorry!
Source
https://github.com/Metallice
______________________________________________________________________________________________________________________
So, I'm a broke college student without a job this summer - instead taking extra classes and studying like crazy for the MCAT. If you like my work and want to thank me, feel free to buy a coffee or an energy drink so I can continue to stay up late studying and working on Android stuff (or help me pay for med school ). I don't want to have to choose! Thanks and I appreciate your support!
I like this format, just like Trinity kernel. Much less placebo for added things. Like, "zOmg, linaro made my phone fly! Thanks for including it, it rocks!!!!!" With the things being changed kept hidden, I'd LOVE for you to release a couple builds, with different compile dates, without changing a thing, but telling people you did. Watch the placebo roll in, ha
Thank god you released this. Seriously the only thing this ROM was missing was a little OC. You guys are really making this purchase (Getting the GTab 2) a really good idea!
Sent from my GT-P3113 using Tapatalk 2
Will this kernel work on p3100 becaise all i see around here all the custom roms and kernels are for p3113 so please just confirm the models on whicj it would be flashable.
Thanx
Sent from my GT-P3100 using Tapatalk 2
tapan15in said:
Will this kernel work on p3100 becaise all i see around here all the custom roms and kernels are for p3113 so please just confirm the models on whicj it would be flashable.
Thanx
Sent from my GT-P3100 using Tapatalk 2
Click to expand...
Click to collapse
I don't know. I have no way of testing.
Sent from my GT-P3113 using xda premium
Oh yeah. You da man!
Just flashed... will give updates on how it is running.. so far so good!!
Sent from my GT-P3113 using xda app-developers app
cannt wait for this, thank u so much
I will tell my feeling about this after I flashed it
Sent from my GT-P3110 using Tapatalk 2
Runs smooth and stable at 1380mhz on my 3113. Thank you for your hard work! On a related note, what governor do you recommend? In your experience, does using hotplug actually save battery?
yes it is working with 3100. great job.
Flashed this on my P3110, and it bricked it NOT.
Thanks for this. Waiting to see what more you will add to the kernel.
Cheers.
I've got a question. Does the tab 2 not have a CPU temp Senser?
Sent from my GT-P3113 using xda premium
Been using this since last night and so far no RR or SOD's. Everything is running smooth without any errors, glitches, etc. Great work, as always, Metallice!
---------- Post added at 11:37 AM ---------- Previous post was at 11:37 AM ----------
Kidney Poker said:
I've got a question. Does the tab 2 not have a CPU temp Senser?
Sent from my GT-P3113 using xda premium
Click to expand...
Click to collapse
I don't know, but wander why you would ask?
miketoasty said:
Been using this since last night and so far no RR or SOD's. Everything is running smooth without any errors, glitches, etc. Great work, as always, Metallice!
---------- Post added at 11:37 AM ---------- Previous post was at 11:37 AM ----------
I don't know, but wander why you would ask?
Click to expand...
Click to collapse
CPU controllers have a temp read out. I like having one. I know most apps pull the info from kernel. Was trying to find out if we have the hardware built in and the kernel isn't passing info or if the hardware is just not there.
Sent from my GT-P3113 using xda premium
Maybe it's just my tablet, but I can't get any clock speed greater than stock to work. Tried it on this kernel and one I did myself.
Kidney Poker said:
I've got a question. Does the tab 2 not have a CPU temp Senser?
Sent from my GT-P3113 using xda premium
Click to expand...
Click to collapse
Yeah the omap does. Not sure if I turned it on or not. If its on you can get the temp from dmesg I believe.
Sent from my Galaxy Nexus using xda premium
imnuts said:
Maybe it's just my tablet, but I can't get any clock speed greater than stock to work. Tried it on this kernel and one I did myself.
Click to expand...
Click to collapse
I can try adding a 1.1ghz slot?
Sent from my Galaxy Nexus using xda premium
Kidney Poker said:
CPU controllers have a temp read out. I like having one. I know most apps pull the info from kernel. Was trying to find out if we have the hardware built in and the kernel isn't passing info or if the hardware is just not there.
Sent from my GT-P3113 using xda premium
Click to expand...
Click to collapse
Most apps actually pull their info from the battery temp and are unreliable.
Sent from my Galaxy Nexus using xda premium
nphil said:
Runs smooth and stable at 1380mhz on my 3113. Thank you for your hard work! On a related note, what governor do you recommend? In your experience, does using hotplug actually save battery?
Click to expand...
Click to collapse
OnDemand. I don't bother with hot plug as I don't see any benefit. If you do a lot of non interactive activities like reading or music it may be helpful, but I would try the 200mhz min before I try hot plug.
Sent from my Galaxy Nexus using xda premium
Have you flashed on cm9 or stock rom??
Sent from my GT-P3100 using Tapatalk 2

[Kernel]NN-J-Kernel-LP-T710/810-5.1.1-3/10/16

This is the BOJ1 version of NN-kernel. It's going to go in a little different direction than the previous kernel. And I'm not very good with Git. So may I present to you.....
NN-J-Kernel​
This will work on the T710 and 810 Wifi only models. I built this for my BNN Nook, but it works with other 710's and 810's.
You flash this at your own risk. There's the discaimer. :silly:​
Install instructions:
You MUST HAVE ROOT and TWRP installed to flash this!!
It's built on Lollipop 5.1.1 - I have no idea what will happen if you flash this on anything else!!
REMOVE SYNAPSE "set on boot" BEFORE INSTALLING!!!
Flash kernel then wipe cache and dalvic
Reboot and profit!!
Changelog
V1.3
GPU Control
UV now possible as well as select frequency
Samsung has the Max listed as 600Mhz. I'm pretty sure its 700 as thats what I've been using this at. Just an FYI
V1.2
Charge Control for battery - It's the best I can do for a "Faster Charge". Be careful. This can shorten the life of your battery. Or worse, ruin it if you change from default. You have been warned.
Maybe some other minor stuff
Also see/read this post
_______________
V1.1
Hotplug Big cores - They are the only ones that can be
OC/UC Big and Little - 2.1Ghz-500Mhz, 1.6Ghz-200Mhz
UV all CPU's
650Mhz step added to GPU
FIOPS Scheduler
Booting freq to 1.4Ghz
Lots of Optimizations
Gentle Fair Sleepers
Synapse stuff added
HMP controls - Big little cores
Memory controls
_______________
V1
OJ1 source
Synapse tuner - it's the only one that seems to work. Finally, after much effort.
Selinux Permissive
KNOX removed
Init.d support
Enabled OTG
Updated Frandom
Govs enabled- Powersave, Conservative, Ondemand - removed Userspace
Some optimizations
_____________________________
This is a Tablet, so I won't be adding things like I would for a phone.
Use "Synapse" from the Playstore for your Kernel tuner
______________________________
Downloads:
NNJ-Kernel-V1.3-710
NNJ-Kernel-V1.3-810
NNJ-Kernel-V1.2-710
NNJ-Kernel-V1.2-810
NNJ-Kernel-V1.1-710
NNJ-Kernel-V1.1-810
NNJ-Kernel-V1-710
NNJ-Kernel-V1-810
Thanks to:
ashyx
BigBot96
UpInTheAir
djmax81
And other peoples gits I can't remember
XDA:DevDB Information
NN-J-Kernel-LP-T710/810, Kernel for the Samsung Galaxy Tab S2
Contributors
engine95
Source Code: https://github.com/engine95/Exynos5433-BOJ1-gts28-210wifi.git
Kernel Special Features:
Version Information
Status: Stable
Stable Release Date: 2016-02-24
Created 2016-02-24
Last Updated 2016-02-24
And yes, Schedulers are fixed in this.
Flashed, running perfectly so far....
Thank you for your work.
Gesendet von meinem SM-T810 mit Tapatalk
I flashed this kernel (oj1-based) and the NN kernel (oh7-based) and let antutu benchmark the performance of both kernels (both default settings). This kernel wins outstanding!
Is this the "newer" one yes ?
Awesome! Thanks, it's nice to see some development on thus tablet. Otherwise there is nothing to flash
Sent from my LG-D855 using Tapatalk
halloarno said:
I flashed this kernel (oj1-based) and the NN kernel (oh7-based) and let antutu benchmark the performance of both kernels (both default settings). This kernel wins outstanding!
Click to expand...
Click to collapse
I did the same and the OJ Kernel is slower for me. Did 2 tests. 69-70k in old Kernel while i getting 62-65 with OJ1. Any idea ? How much do you get?
I tried setting max core to 2.x ghz but its not working, is it fixed to 1.9 ghz=no oc enabled so far?
Very strange, worked before i think. Just have Synapse installed and also wiped caches after flashing.
Any idea?
IngoPan said:
I tried setting max core to 2.x ghz but its not working, is it fixed to 1.9 ghz=no oc enabled so far?
Very strange, worked before i think. Just have Synapse installed and also wiped caches after flashing.
Any idea?
Click to expand...
Click to collapse
This kernel has no OC function, at least until now.
Actually, right now, it has no OC or extras. This is just the start. It's in the changelog.
Antutu scores, for me are 66-67000.
OC/UC and UV will be coming shortly. It's done. I just can't find out why Big 1500 ghz and Little 1300ghz are favored. Messed with a lot of stuff to no avail. Yet
V1.1 is up!!
SEE/READ changelog as there is a ton of stuff in it now. Both Kernel and Synapse. Yea for Hotplug!!!
Google "HMP" so you can understand it better. Big/Little core control. Little cores are ALWAYS online.
Think I found a way to get us a Fast Charge. Gotta finish and test it. So far it's looking good.
engine95 said:
Think I found a way to get us a Fast Charge. Gotta finish and test it. So far it's looking good.
Click to expand...
Click to collapse
Incredible. Fast charge on our tab s2? I hope so?
Great job! Thanks! Flashed and works perfectly, new synapse settings seems cool. UC seems to work fine.
Shiuldnwebuse the DVFS app as mentioned in synapse?
Sent from my SM-T810 using Tapatalk
whynottoday said:
Incredible. Fast charge on our tab s2? I hope so
Click to expand...
Click to collapse
Gugus38 said:
Great job! Thanks! Flashed and works perfectly, new synapse settings seems cool. UC seems to work fine.
Shiuldnwebuse the DVFS app as mentioned in synapse?
Sent from my SM-T810 using Tapatalk
Click to expand...
Click to collapse
Thanks. I have no idea if that app helps as I'm new to Samsung. If you try it, make a backup first.
Everything works fine without it though.
Can you say Fast Charge?!!!!!
I had to port Hotplug and Fast charge, but I think we're good to go. I still need to put finishing touches and build for both 710/810. But it should be out tomorrow IF my Tab doesn't meltdown while charging tonight. :silly:
Edit: Also, remember that as with everything computer, Fast Charge will be limited by Thermals. Just like CPU/GPU.
engine95 said:
Thanks. I have no idea if that app helps as I'm new to Samsung. If you try it, make a backup first.
Everything works fine without it though.
Can you say Fast Charge?!!!!!
I had to port Hotplug and Fast charge, but I think we're good to go. I still need to put finishing touches and build for both 710/810. But it should be out tomorrow IF my Tab doesn't meltdown while charging tonight. :silly:
Edit: Also, remember that as with everything computer, Fast Charge will be limited by Thermals. Just like CPU/GPU.
Click to expand...
Click to collapse
It wont really be fast charge as our tab doesn't support it
Reuben_skelz92 said:
It wont really be fast charge as our tab doesn't support it
Click to expand...
Click to collapse
Interesting. Guess we'll find out. I have been able to vary the voltages while charging. Up and down. But as I said, thermals will probably limit it.
Edit. Let's call it "Charge Control" then.
engine95 said:
Interesting. Guess we'll find out. I have been able to vary the voltages while charging. Up and down. But as I said, thermals will probably limit it.
Edit. Let's call it "Charge Control" then.
Click to expand...
Click to collapse
Sorry me being an idiot. Will be cool to see our tabs charge a little.bit quicker
Thank you very much for the kernel!
Running 1.1 with
A57 cores at 1300/500 and UV 50mV
A53 cores at 1000/200 and UV 25mV
2 A57 cores online
FIOPS scheduler, 2048 readahead
Gentle Fair Sleepers enabled
It's running snappy! Will watch battery life
P. S.: Why doesn't Synapse have live monitoring where one can see which frequency each core has at the moment? Just like other kernel tuners?
hasenbein196601 said:
Thank you very much for the kernel!
Running 1.1 with
A57 cores at 1300/500 and UV 50mV
A53 cores at 1000/200 and UV 25mV
2 A57 cores online
FIOPS scheduler, 2048 readahead
Gentle Fair Sleepers enabled
It's running snappy! Will watch battery life
P. S.: Why doesn't Synapse have live monitoring where one can see which frequency each core has at the moment? Just like other kernel tuners?
Click to expand...
Click to collapse
They are there. On the core screen at the top. Just wiggle the screen and you'll see it change. Big cores don't move as much until there is demand for them.
V1.2 is in the OP! With "Charge Control" See/read changelog for warnings.
This was a big port, and everything seems to be working. Just watch your tab for temps just to be sure it can handle the voltages. We should be ok, as it's built in and not on it's own. Meaning that all of Samsungs limits are still there. So Thermals should hold it from melting down. My Tab has been plugged in all night and is just fine.
This has all kinds of cable configurations, so it should cover about everything out there. I only use AC and USB but left all the others in for all of you.
One more time, we should be OK using Charge Control, but BE WARNED that it may ruin your battery and shorten battery life span. You use this at your own risk.

Categories

Resources