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?
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...
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
In this thread you may find my customized kernel 3.0.x for JB 4.2.2 rom (CM10.1 and derivatives).
I hope it will be useful, and ensures better performance and battery life.
Of course, your feedback, as always, are welcome and certainly valuable.
Main Features:
-- Kernel 3.0.86
-- Compiled with Linaro 4.7.4 modded by christopher83
-- Sources synched with Cm10.1 branch
-- Built with Cortex-A8 and NEON VFP optimization flags
-- Kernel is very Stable
-- 374 mb of free RAM
-- Init.d support
-- Battery Life eXtender support ( thanks ezekeel and ryuinferno)
-- Optimized AES and SHA1 routines for ARM cpu architecture
-- Optimized ARM RWSEM (read/write semaphore) algorithm
-- Optimized asynchronous I/O latency on solid state disks
-- Optimized string and memcopy libs
--Fast Random generator (frandom) support
-- optimized LPDDR RAM timings (~10% throughput increase)
-- Dynamic management of dirty page writebacks
-- Added optimized CRC32 algorithm.
-- Voku and Dorimanx Tweak for LowMemoryKiller
-- Disable Gentle Fair Sleep for better perfomance
-- Asynchronous I/O latency
-- Lower swappiness 600----->45
-- Add -O3 optimization for modules
-- CK3 con Kolivas Tweaks
Avaible Cpu Governors
-- PegasusQ
-- ZenX
-- Nightmare
-- Ktoonservative
-- Sakuractive
-- HYPER
-- LagFree
-- AbyssPlug
-- Wheatley
-- HotPlug
-- Conservative
-- Perfomance
-- UserSpace
-- PowerSave
-- Ondemand
-- Interactive
Avaible I/O schedular
-- VR
-- Sio
-- Row
-- CFQ
-- DeadLine
-- Noop
Demon-Kernel MediaFire Folder
Sources : My sources of DemonProjects and other projects
CREDITS:
BIG THANKS FOR CHRISTOPHER FOR HIS HELP !!
Mnazim
fuss
Codeworkx for all
Ryuinferno
DOOMSDAY94
Diablo55 for helped my
Christopher83 for his toolchain and his source
voku to vokulmk
cyanogen team =D
and other =))
ChangeLog :
Code:
[B]Mangekyou-Kernel V2 03-07-2013[/B]
adjustes some file
fix name of kernel in defconfig
add [B]CK3[/B] Con Kolivas Tweaks !
[B]Mangekyou-Kernel 02-07-2013[/B]
- Change name of kernel ( because i use mangekyou image in my github and i like this name :P )
- Update LMK
- Voku and Dorimanx Tweak for LowMemoryKiller
- Disable Gentle Fair Sleep for better perfomance with good battery status
- Asynchronous I/O latency to a solid-state disk greatly increased
- Lower swappiness 600----->45
- Add -O3 optimization for modules
[B]Demon-Kernel 01-07-2013[/B]:
-Initial Release
wow first rep........
is it inspired from vampire diaries character........:silly:
just kidding.......
only on 4.2.2 aosp roms???????
for the moment...yes
biagio7xD said:
for the moment...yes
Click to expand...
Click to collapse
whokay then its time to flash new rom after a neat's release.........:silly:
will give feebback by tom may be with screenies.......
will flash on mokee......
I like the sharingan icon so much
Mangekyo sharingan of Itachi
Sent from my GT-I9100G using xda premium
Project Nexus kernel is dead?
Whats the different between this n nexus kernel??
Sent from my GT-I9100G using xda app-developers app
cyelanius said:
Whats the different between this n nexus kernel??
Sent from my GT-I9100G using xda app-developers app
Click to expand...
Click to collapse
nexus kernel have more features and nexus is a perfomance kernel.....not battery friendly...this kernel is more stable and more battery friendly...this is better than nexus
EDIT: release version 20130702.... Mangekyou kernel
I had just installed your damon kernel and was ready to thank you, but saw that there was already a new version. Whooow, if you're speaking of fast, this is fast. So thanks man, and do so on I would say. Doing well. BTW, downloading Mangekyou kernel now!
Verstuurd van mijn GT-I9100G met Tapatalk
wackowizzard said:
I had just installed your damon kernel and was ready to thank you, but saw that there was already a new version. Whooow, if you're speaking of fast, this is fast. So thanks man, and do so on I would say. Doing well. BTW, downloading Mangekyou kernel now!
Verstuurd van mijn GT-I9100G met Tapatalk
Click to expand...
Click to collapse
It is just a rename, no changes yet...as seen from his GitHub...expect if he did not update it before releasing as per real world law...
Hi, at first I wanted to congratulate you on releasing your kernel, but you disappointed me again:
Misconception:
-- Init.d support [all AOSP kernel supports this, it is a feature in stock but not AOSP, already told you before]
-- Add -O3 optimization for modules [not done anywhere]
Below are the features from Slim kernel:
-- Optimized AES and SHA1 routines for ARM cpu architecture
-- Optimized ARM RWSEM (read/write semaphore) algorithm
-- Optimized asynchronous I/O latency on solid state disks
-- Optimized string and memcopy libs
-- Voku and Dorimanx Tweak for LowMemoryKiller
-- Disable Gentle Fair Sleep for better perfomance
-- Asynchronous I/O latency
-- Lower swappiness 600----->45 [it's 60]
What you did:
Compiled with Linaro 4.7.4
optimized LPDDR RAM timings (~10% throughput increase)
add Frandom v2
Added NEON compilation flag
mm: Dynamic management of dirty page writebacks
Battery Life eXtender (BLX)
add New Governor From Nexus Kernel
Added optimized CRC32 algorithm
So this kernel is very based on Slim kernel...and why didn't you state it and credit @mnazim properly?
And, removal of sources of the old Nexus kernel means you cannot share it in public anymore...didn't you learn anything since the Semaphore kernel incident?
Ryuinferno said:
It is just a rename, no changes yet...as seen from his GitHub...expect if he did not update it before releasing as per real world law...
Hi, at first I wanted to congratulate you on releasing your kernel, but you disappointed me again:
Misconception:
-- Init.d support [all AOSP kernel supports this, it is a feature in stock but not AOSP, already told you before]
-- Add -O3 optimization for modules [not done anywhere]
Below are the features from Slim kernel:
-- Optimized AES and SHA1 routines for ARM cpu architecture
-- Optimized ARM RWSEM (read/write semaphore) algorithm
-- Optimized asynchronous I/O latency on solid state disks
-- Optimized string and memcopy libs
-- Voku and Dorimanx Tweak for LowMemoryKiller
-- Disable Gentle Fair Sleep for better perfomance
-- Asynchronous I/O latency
-- Lower swappiness 600----->45 [it's 60]
What you did:
Compiled with Linaro 4.7.4
optimized LPDDR RAM timings (~10% throughput increase)
add Frandom v2
Added NEON compilation flag
mm: Dynamic management of dirty page writebacks
Battery Life eXtender (BLX)
add New Governor From Nexus Kernel
Added optimized CRC32 algorithm
So this kernel is very based on Slim kernel...and why didn't you state it and credit @mnazim properly?
And, removal of sources of the old Nexus kernel means you cannot share it in public anymore...didn't you learn anything since the Semaphore kernel incident?
Click to expand...
Click to collapse
this is based on cyanogen source....nexus is based on slim....not this
biagio7xD said:
this is based on cyanogen source....nexus is based on slim....not this
Click to expand...
Click to collapse
You said Nexus was based on CyanogenMod before this...your sources on GitHub is not supporting your speech...your old repo is gone too...
Real law means intellectual property right? Well then i have to state my opinions. One, this kernel is not earning any money or use ad like someone. Second, original creator of such code is also not earning money frm his creation so i can only see a moral intellectual property rights which is to demand this thread to credits those people properly. Third intellectual property rights is not so easy to be claim as you think. There are few principle such as improvising or this op did expanded his labour work n time to compile and the extent of his own work to actually produce this piece of kernel.
Sent from my GT-I9100G using xda app-developers app
cyelanius said:
Real law means intellectual property right? Well then i have to state my opinions. One, this kernel is not earning any money or use ad like someone. Second, original creator of such code is also not earning money frm his creation so i can only see a moral intellectual property rights which is to demand this thread to credits those people properly. Third intellectual property rights is not so easy to be claim as you think. There are few principle such as improvising or this op did expanded his labour work n time to compile and the extent of his own work to actually produce this piece of kernel.
Sent from my GT-I9100G using xda app-developers app
Click to expand...
Click to collapse
Nope...real law as in GPL...it is different from what you are saying...I did not say he broke it just yet (athough he did before), I was just saying he has to follow GPL, that's all...faux123 got penalised a few times for not adhering to GPL...
Even there is no such law (which is not the case), can't an innocent "user" like me know what's being modified and done to my device? :angel:
Ryuinferno said:
Nope...real law as in GPL...it is different from what you are saying...I did not say he broke it just yet (athough he did before), I was just saying he has to follow GPL, that's all...faux123 got penalised a few times for not adhering to GPL...
Even there is no such law (which is not the case), can't an innocent "user" like me know what's being modified and done to my device? :angel:
Click to expand...
Click to collapse
:thumbup::thumbup: on the GPL point but well xda is at own risk afterall for what you flash isnt it?
Sent from my GT-I9100G using xda app-developers app
cyelanius said:
:thumbup::thumbup: on the GPL point but well xda is at own risk afterall for what you flash isnt it?
Sent from my GT-I9100G using xda app-developers app
Click to expand...
Click to collapse
On your own risk, but what's the point of sharing if people do not know what's going on?
And what is the point with such restriction that will reduce development in xda which was meant to promote n encourage people to develop and introduce ways to put our device to better use? Op since last time in s plus thread got good reputation in his works and even now in s2. I hope this wil not stop people from giving their time n energy working on their works.
Sent from my GT-I9100G using xda app-developers app
cyelanius said:
And what is the point with such restriction that will reduce development in xda which was meant to promote n encourage people to develop and introduce ways to put our device to better use? Op since last time in s plus thread got good reputation in his works and even now in s2. I hope this wil not stop people from giving their time n energy working on their works.
Sent from my GT-I9100G using xda app-developers app
Click to expand...
Click to collapse
*facepalm*...I'm not gonna argue anymore...the fact is, things can be done, but get your path right... That's all I want to convey...
cyelanius said:
And what is the point with such restriction that will reduce development in xda which was meant to promote n encourage people to develop and introduce ways to put our device to better use? Op since last time in s plus thread got good reputation in his works and even now in s2. I hope this wil not stop people from giving their time n energy working on their works.
Sent from my GT-I9100G using xda app-developers app
Click to expand...
Click to collapse
I do not care if the op has a good reputation. The op isn't going to buy me a new device if I brick mine due to this kernel now would he? A kernel is far more important to how a device functions rather than a ROM. If there's little to no CORRECT information given, how would I know what I'm flashing is safe. You may tell me to just skip this and not flash this. But what about other people who sees the stuff in the op but isn't getting what they came for. Complying to GPL is a lot more than what you may think it is. It also helps learning and experienced people know exactly what they're getting.
Sent from my Nexus 7
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?