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...
Related
What is the difference between CFS and BFS? Ive been using CFS and its working alright, but i was just wondering what the difference is between the two? Its not clearly explained in his thread. And, is there anything different I need to do to flash the BFS rom?
Thanks again, and again, and again
-Mike
The 's' at the end means they are schedulers.
http://en.wikipedia.org/wiki/Scheduling_(computing)#Linux
The differences is pretty technical, but try both and see which you like better. The changes are all in the boot.img, so there is nothing more needed on your end.
BFS has a cooler name.
It means - nobody knows...
su27 said:
It means - nobody knows...
Click to expand...
Click to collapse
Yes, people do.
BFS was designed to be forward looking only, make the most of lower spec machines, and not scale to massive hardware. ie it is a desktop orientated scheduler, with extremely low latencies for excellent interactivity by design rather than "calculated", with rigid fairness, nice priority distribution and extreme scalability within normal load levels. While CFS Cuses red-black trees instead of queues.
Are you happy?
I am proud to announce Savage-Kernel to the xda forms. Currently in beta testing we worked from the latest invisiblek kernel newly undervolted, HAVS with the SBC mod.
JUST FOR @PonsAsinorem:::::: DISCLAIMER!!!! IM NOT RESPONSIBLE FOR BRICKING YOUR PHONE... EVEN THOUGH THE KERNEL CANNOT BRICK A ROOTED PHONE UNLESS YOU FLASH A BAD RECOVERY..... DON'T MODIFY THE UPDATER-SCRIPT TO FLASH THIS TO YOUR RECOVERY!!!!!! .... ALL CHANGES TO THIS KERNEL STILL MEET THE MINIMUM SPECS OF THE INC.... UNLESS YOU OVERCLOCK... WHICH IS UNDERVOLTED... WHICH IS RUNNING AT THE STOCK VOLTAGE AND SHOULDN'T HARM YOUR PHONE ANYWAY.
SENSE BASED ROMS NOT SUPPORTED THIS IS FOR AOSP ROM'S ONLY
So far the Kernel works great in conservative governor. which all the devs prefer.
Devs:
jsseidel1 (co-creator)
luisrcastillo (co-creator)
ms79723 (SBC mod updates)
lithid-cm (contributer. Updater-script guru)
Credits:
invisiblek--> base kernel!!
ms79723 --> the SBC mod.
netarchy --> smartass gov
intersectRaven --> HAVS
(credits are given to the dev's where we got some code from, may no be original designer)
CFS Builds:
Alpha1 : Click Here to download
Stable v1 : Click Here to download
BFS Builds:
Follow the github on twitter @evokernelsrc
If you like our kernel and want to support us... donate (no obligation)
Change log
Code:
[B]Alpha 1[/B]
Undervolted to 925
HAVS implemented configured for conservative
smartass added for fans
SBC Mod added (trickle Charging)
Enabled OC to 1.19 and stable
conservative governor tweaks
HAVS tweaks
smartass governor tweaks
voltage tweaks
BFS360 (latest version) and CFS VERSION!!!
Added SBC v7
BFS tweaks to ondemand gov
tweaks to interactive gov
bad ass CFS tweaks!!!!!
aggressive swap drop
misc tweaks
[B]Stable v1[/B]
SBC v7 ported from Evo (better battery life, this is a HTC mod so doesnt matter that it came from Evo)
FAQ's
All answers are based off latest stable build
Which governor should I use?
Use Conservative for best battery, if you get any lag or choppy or shutter switch to either Smartass or interactive.
Which governors are tweaked?
Conservative and Smartass
I'm running smartass and having screenwake issuesm what do I do?
We suggest you set up a screen off profile of 245/384 to avoid the wake issue.
Have any more? Just ask!!
jsseidel1 said:
All answers are based off latest stable build
Which governor should I use?
Use Conservative for best battery, if you get any lag or choppy or shutter switch to either Smartass or interactive.
Which governors are tweaked?
Conservative and Smartass
I'm running smartass and having screenwake issuesm what do I do?
We suggest you set up a screen off profile of 245/384 to avoid the wake issue.
Have any more? Just ask!!
Click to expand...
Click to collapse
What kind of battery life are you getting with this? I know results vary, but just curious.
Sent from my ADR6300 using XDA App
excited to try this
jsseidel1 said:
All answers are based off latest stable build
Which governor should I use?
Use Conservative for best battery, if you get any lag or choppy or shutter switch to either Smartass or interactive.
Which governors are tweaked?
Conservative and Smartass
I'm running smartass and having screenwake issuesm what do I do?
We suggest you set up a screen off profile of 245/384 to avoid the wake issue.
Have any more? Just ask!!
Click to expand...
Click to collapse
How did you determine that conservative is the most power-friendly?
I would post a disclaimer about the SBC mod.
Sent from my ADR6300 using Tapatalk
Am I missing the link here or has it not been posted yet? I'm excited to test.
Guys, SBC *really* isn't good for the battery. Li-Ion batteries aren't designed to use trickle charging. IMO this will kill the batteries faster and isn't worth the extra charging.
waiting to try this... dont think it will hurt my battery in the short run... who keeps phones longer than 2 years anways?
True. I've gotten better battery life off of it, but I feel like my MIUI build recently has been getting worse due to the SBC mod.
Works on gingerbread roms?
Sent from my ADR6300 using XDA App
If it's AOSP, it should, but sometimes I've gotten weird reactions using kernels that are claimed to work on all AOSP ROMs (Kingx Kernel + MIUI = no-no. Also, MIUI + Hydra = no-no).
Point being, we should probably get this clarified. I've seen instances where people have lost touchscreen functionality (though usually that's due to a failure to wipe cache/dalvik) among other issues. Until we field test this on GB ROMs or until the OP states that it works on them, we should probably refrain from flashing it over a GB ROM. You can do it if you want, I'm in no way trying to make you turn away from it; I'm just saying take it with a grain of salt.
Plus there's the SBC issue to worry about; trickle-charging has negatively affected the battery performance of my MIUI ROM, so I'm going to switch kernels whenever I go back to it. Better charging in the short run < not needing to buy new batteries in the long run (and therefore saving money).
link??????
*sigh*...
Ok, clearly I need to start citing the comments I make. Here you go:
http://forum.xda-developers.com/showthread.php?t=885476&page=25
The first post on this last page pretty much sums it up (actually, read 23-25 to sum up the main issues, it also has links to OTHER posts talking about the issues), but if you want other chronological examples of touchscreen failure or other issues you can read examples from pages 2, 5, and some places past page 15. SBC is bad news on its own, and adding overclocking to it just makes it worse. Again, you can use the kernel if you want, I'm not gonna stop you, I'm just saying that there have BEEN problems with it on other AOSP ROMs. MIUI seems to take pretty well to SBC in terms of battery, as I've seen; but, it's been getting worse as of late. UltimateDroid had a touchscreen failure (page 5) in v1; I don't believe that's been fixed yet, but feel free to correct me. MIUI had a touchscreen failure in v2 (though I think there might have been a bad flash involved, because I flashed SBC to my MIUI 12.24 at the time and it worked fine), cited page 23. Need I go on? Lol.
Point is (I've said that a lot, I know) that it does damage, multiple AOSP ROMs are getting touchscreen failure, and there's more harm than good that comes out of it.
Read: http://www.ziggy471.com/2011/01/02/overcharging-batteries/
That's a good link also. It's actually in the thread I posted, but its equally as important if not more important than my post. Good job man XD
Sent from my HTC Incredible running Carbonite Red 1.5.
Ok you all need to relax. SBC does not over charge your battery. The trickle charging is essentially the battery staying at 100% while on the charger. Lithium ion batteries have tech built into them to protect from over charging and such. SBC just means when you take it off the charger it will really be at 100%. You can't over charge aanyway. This kernel allows you to overclock but it doesn't force it. You need to choose overclocking yourself in setcpu. ... and 90% of the kernels in this forum have SBC they just either don't say it or they call it the battery fix. You can see it in their gits. On the evo forums we just call it SBC. Ill be posting the kernel today. If you don't want to use it. Then don't. It was just requested that I port my evo kernel over to the Inc. So I am.
Sent from my PC36100 using XDA App
gmichaelow said:
How did you determine that conservative is the most power-friendly?
Click to expand...
Click to collapse
Conservative by nature is more power friendly as it only ramps up the processor as requested then brings it right back down to your min.
The way we have set our Governor is to optimize the Conservative Governor to get the most speed stability and battery life out of your phone.
I just got a config from one of your rom dev's to build the kernel so this should be posted by tomorrow.
I for one appreciate what you are doing. There is nothing wrong with having a variety of kernels to choose from. If you disagree with what this dev is doing, then use another kernel. We don't need to be running them off.
Sent from my ADR6300 using XDA App
Simple poll. I am curious to see who uses JIT and who has it disabled? If you answer, please explain why you do or do not use JIT. Just thought I would get people's different input on this
i used to have it enabled but had seen no positive outcomes, just more lag.
but that was when i was running CM6... i havent tried it on CM7 yet.
I know JIT on Sense 2.1 was disastrous for the most part. Have stayed away from it for the most part.
JIT on CM7 is actually very stable, however I observe absolutely no improvement or noticeable change in performance anywhere.
Then again, people also claim a smoother experience when "Allow purging of assets" is unchecked, even thought it is meant to improve performance of low memory devices like ours... YMMV, I guess.
My question is, what are the supposed benefits? Scoring higher on a particular benchmark score and thats it? I agree. It doesn't seem to make my phone any smoother, if anything, it makes it more laggy.
I've been using jit since the days of Ic3 rom and damage's roms as well. I think it just improves data. No speed on the phone just how the phone complies data. I think. But from my time on here if you can't overclock to 768 and run stable then I'd recommend avoiding jit.
Yea its Me Again With The
Modified Hero
In aosp 2.2 I would get an extra 20 or so on my quadrant score with JIT enabled. In gingerbread I haven't seen any improvement at all. I leave it disabled because I heard it uses more ram to speed things up.
I use JIT and I always have since installing custom ROM images. There's a lot of hearsay left over from long before I joined xda-developers that says it causes instability. But this is probably more to do with the original way JIT was brought to the Hero.
The latest official software for the Hero is built from Android 2.1. JIT was not introduced into Android until 2.2. So as far as I know, the original method to implement JIT on the Hero was to hack it into the official software. This is likely where the instabilities were found.
I've been using JIT since dabbling with CM6 (and its derivatives), and I've never seen any negative effects. I do, however, always decrease my VM heap to 24m and enable compcache at 18% when using JIT. Not doing so MAY cause JIT to starve the phone of memory, which could be another source of the instabilities you've seen mentioned.
Some people say JIT isn't necessary because its effects are only noticed in benchmarks such as Linpack. This, simply put, is false. JIT is always going to offer a performance increase. Now, depending on how you use your phone, the increase may not always be very noticeable, but that doesn't mean it's not there. And the less time the VM spends using the processor, the more battery life you're going to see. That's an angle that isn't always addressed when JIT is discussed.
My advice is to leave it enabled as long as you don't specifically see any issues with it. Our sister phone of sorts, the Droid Eris, now has it enabled by default in CM7.
Thanks jasonmaloney, I always prefer hearing answers from people with technical know-how such as yourself. On a CM performance related note, what is your opinion on people reporting better performance with "Allow purging of assets" disabled?
c00ller said:
Thanks jasonmaloney, I always prefer hearing answers from people with technical know-how such as yourself. On a CM performance related note, what is your opinion on people reporting better performance with "Allow purging of assets" disabled?
Click to expand...
Click to collapse
I was actually the one who submitted the patch to enable it by default. I've only ever heard of specific issues in relation to ADWLauncher, which, in my opinion, shouldn't ever be used in the first place due to the numerous better-written alternatives.
But I'm starting to wonder whether it has anything to do with the GPS problems people have been seeing.
All I really know for sure is that the graphics subsystems in CM7 for the Heroc are screwed up, and that they're probably going to be that way even when CM7 is finalized.
EDIT: If anyone can find compelling evidence that having it enabled is causing issues, I'll revert the patch and make it disabled by default.
jasonmaloney said:
All I really know for sure is that the graphics subsystems in CM7 for the Heroc are screwed up, and that they're probably going to be that way even when CM7 is finalized.
Click to expand...
Click to collapse
Is that a good or bad thing? Yes the words used dictates it's meaning, but what would have been the plus factors if it were squared away?
oohaylima said:
Is that a good or bad thing? Yes the words used dictates it's meaning, but what would have been the plus factors if it were squared away?
Click to expand...
Click to collapse
The most glaring example of a problem is seen in running Neocore. None of the textures show up.
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
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?