Related
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...
I'm used to flashing ROMs, Radios, and recoveries... but I'm not entirely sure about kernels. but I definitely want to flash custom kernel now.
I want to try out Raven's but I have no idea what all the differences is, and if it's safe to use with CM 5.0.7.1
thanks in advance for the help.
For me, CFS 925 seems the best.
ATM, i believe BFS for the N1 is not yet stable and sometimes has issue... CFS works great though...
Getting into technical details, here's the BFS vs CFS comparison (for kernels in general, not specific to N1 kernel) http://www.cs.unm.edu/~eschulte/data/bfs-v-cfs_groves-knockel-schulte.pdf
I'm using intersectRaven's .34 925mV BFS w/ Froyo and it works great. getting 1-2% per hour. 39MFLOPS w/ Linpack
craigacgomez said:
ATM, i believe BFS for the N1 is not yet stable and sometimes has issue... CFS works great though...
Getting into technical details, here's the BFS vs CFS comparison (for kernels in general, not specific to N1 kernel) http://www.cs.unm.edu/~eschulte/data/bfs-v-cfs_groves-knockel-schulte.pdf
Click to expand...
Click to collapse
Thanks to all 3 of you, however I found this post more helpful since it tells me that BFS is unstable.
Doing a nandroid right now and I'm about to flash 925 CFS
on cyan 5.0.6 I used Intersects CFS 800mV . Worked good. I have no idea what they meant and just picked one...lol not too smart huh. I also tried to BFS later and I found it to drain my battery more.
Can someone tell me what CFS and BFS stand for tho?
Buck Shot said:
on cyan 5.0.6 I used Intersects CFS 800mV . Worked good. I have no idea what they meant and just picked one...lol not too smart huh. I also tried to BFS later and I found it to drain my battery more.
Can someone tell me what CFS and BFS stand for tho?
Click to expand...
Click to collapse
CFS = Completely Fair Scheduler
BFS = Brain **** Scheduler
I suppose a decent layman summary of BFS vs CFS is found in the conclusion of this document:
http://www.cs.unm.edu/~eschulte/data/bfs-v-cfs_groves-knockel-schulte.pdf
Conclusion
The results indicate that CFS outperformed BFS with minimizing turnaround time but that BFS
outperformed CFS for minimizing latency. This indicates that BFS is better for interactive tasks
that block on I/O or user input and that CFS is better for batch processing that is CPU bound.
Click to expand...
Click to collapse
by the way, not all Nexus One CPUs are able to work at 800mV mine cannot, but it works at 925mV or above.
How do these two, CFS + BFS, effect battery life?
Any differences when using one of the other while also undervolting and underclocking?
Im looking for most possible screen-on batt life basicly. It seems like this phone NS4G w/LED has fantastic battery life, so long as your not screen on haha...looking to improve.
Thanks!
Technically speaking all TouchPads, black or white ones have the same SoCs, the APQ8060. It's factory clock should be 1.5GHz, which the white TouchPads are set on, but the black ones are all clocked at 1.2GHz.
So if we treat it as a 1.5GHz base shouldn't we 'technically' have more overclock head room, ignoring the fact that we don't have proper kernels for that anyways?
I'm just curious on why the CM7 builds didn't use the SoC factory clock and instead followed the HP settings. Because with the kernel as it is, we can get to a maximum of about 1.8GHz using any basic overclocking program which is only about 20% over the factory speed.
they might have lowered the voltage in addition to running it at 1.2 as opposed to 1.5G. that means even if you want to set it back to 1.5G, settings still need to be looked at closely. running it at default 1.5G does not give you more overclock head room either, as the final speed that your particular touchpad cpu can run does not depend on that.
iamsamsamiam said:
Technically speaking all TouchPads, black or white ones have the same SoCs, the APQ8060. It's factory clock should be 1.5GHz, which the white TouchPads are set on, but the black ones are all clocked at 1.2GHz.
So if we treat it as a 1.5GHz base shouldn't we 'technically' have more overclock head room, ignoring the fact that we don't have proper kernels for that anyways?
I'm just curious on why the CM7 builds didn't use the SoC factory clock and instead followed the HP settings. Because with the kernel as it is, we can get to a maximum of about 1.8GHz using any basic overclocking program which is only about 20% over the factory speed.
Click to expand...
Click to collapse
HP most likely turned them down for battery life concerns (a rather common practice, Apple used to do this on the iPhone before they started making their own chips) and then undid it to justify a higher price on the white models. CM most likely is keeping it so that battery life will be comparable once its issues are worked out.
For now 1.2ghz is fast enough for me, i would rather have the better battery life.
Well, if i remember correctly, in WebOS there was no battery or heat issues changing the clock speed to 1.5GHz. Basically, the battery life was the same and the system temperature was about 2 degrees higher, and was well within the safe range. It just seemed like there was no benefit in clocking it down.
Maybe there are a battery benefits in Android, but as it stands the battery expectancy in Android is about 30-40% less than the WebOS usage range.
Moving the clock speed to over 1.5 might raise the temperature a bit, but even in WebOS people didn't see that much of a usage change (but that could be because there's nothing really to run on WebOS).
There is another thing to consider, all chips are not born equal, every fabricator of chips does what they call binning and I'll quote an article that can describe it better than I can
from - http://www.edn.com/blog/Between_The_Lines/35926-Karma_for_MPUs_is_chip_binning_burning_up_.php
"Chip binning has always been fascinating to me on many levels. What is it? It’s essentially a practice in which chip manufacturers design a chip to hit a targeted speed grade, say for example 2GHz, but after the chips are manufactured and tested, manufactures find some of the chips perform at the targeted speed grade of 2GHz, some perform at higher than 2GHz, and even more perform at lower speeds than that targeted specification number (some of those lower performing chips may perform at 1.8 GHz, others at 1.5 GHz and some at 1 GHz…and lower). But instead of throwing out the chips that didn’t hit the targeted performance specification, some semiconductor vendors, especially microprocessor vendors, sell most of them to us, the consumer. They simply put them in bins according to speed grade and price them accordingly."
Click to expand...
Click to collapse
So the 1.5GHz units may very well be of greater quality than the chips that ended up in our 1.2GHz units and by raising the base to 1.5GHz many people could end up with unstable Touchpads.
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
If you have undervolted your Nexus 7 or any other tegra 3 based device please post the results here so I can throw them into a Excel sheet for development.
Using advanced mathematics and complex formulas I will make a undervolted kernel that's stable for everyone. For that, I need ideally 30 results or more. Less is ok but more or equal is better.
FORMAT 1:
CPU
- [FREQ1] [VOLTAGE1]
- [FREQ2] [VOLTAGE2]
- [FREQ3] [VOLTAGE3]
- ,,,
Click to expand...
Click to collapse
FORMAT 2:
CPU GLOBAL: [OFFSET]
Click to expand...
Click to collapse
I also accept 1 frequency result. You don't have to undervolt everything. I favor the last known voltage that crashes as well if you can send this I am even more happy.
Undervolted mine by 50mv
Sent from my Nexus 7 using Tapatalk 2
djjonastybe said:
If you have undervolted your Nexus 7 or any other tegra 3 based device please post the results here so I can throw them into a Excel sheet for development.
Using advanced mathematics and complex formulas I will make a undervolted kernel that's stable for everyone. For that, I need ideally 30 results or more. Less is ok but more or equal is better.
Click to expand...
Click to collapse
In order to use "advanced mathematics" and "complex formulas".. You might want to provide a format for "the results" you want people to provide.. Without a stream of formatted data to input your "complex formulas" and "advanced mathematics" is impossible..
"Advanced mathematics" and "complex formulas" sounds like you are doing an infomercial.
Pure waffle.
Sent from my GT-I9300 using xda premium
djjonastybe said:
..I will make a undervolted kernel that's stable for everyone
Click to expand...
Click to collapse
ha! good luck. considering some devices arent stable at all when undervolted just a tiny bit, and otbers are stable with a lot of undervolting, you have a tough road ahead of you.
simms22 said:
ha! good luck. considering some devices arent stable at all when undervolted just a tiny bit, and otbers are stable with a lot of undervolting, you have a tough road ahead of you.
Click to expand...
Click to collapse
I actually came back to post exactly this but Simms22 was too quick, as usual!
Sent from my GT-I9300 using xda premium
nodstuff said:
"Advanced mathematics" and "complex formulas" sounds like you are doing an infomercial.
Pure waffle.
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
I see you went with the more direct and honest approach. I tried being more subtle with my response.. :laugh: But yeah.. Marketing hype for a kernel.
styckx said:
I see you went with the more direct and honest approach. I tried being more subtle with my response.. :laugh: But yeah.. Marketing hype for a kernel.
Click to expand...
Click to collapse
Might as well be honest, set him on the right track early in his dev career rather than him rely on buzzwords and fud like some people do.
These are forums for android devices, not Apple devices, the reality distortion field doesn't work here, fancy marketing terms should be left at the door.
Sent from my GT-I9300 using xda premium
My Galaxy Nexus is proof of undervolting being unstable using software while being stable with manually programming the voltages. So I am going to give this a good shot anyway.
My Galaxy Nexus uses SmartReflex to undervolt.
Look at this table I made:
https://docs.google.com/spreadsheet/ccc?key=0AuqacKmGLKJ6dEdJZG5QTmNtQnoyYk0zbm5IanluMHc#gid=1
You see the core or gpu was already crashing at 974mV, which was the reason why I stopped undervolting using the thread. But don't give up, I tried again using SmartReflex because I felt I should be able to get lower. And now I am at 911mV but I did not try to get lower yet.
I plan on undervolting by actually programming it. I don't know how you guys undervolt for the Nexus 7, since I am fairly new with this device.
READ FIRST POST for formatting
nodstuff said:
"Advanced mathematics" and "complex formulas" sounds like you are doing an infomercial.
Pure waffle.
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
http://en.wikipedia.org/wiki/Student's_t-distribution
Using that I can calculate which voltage to take that will work for 90% of us or 99% of us or maybe 100% ?
For that I need some results. The more the better.
The only voltage settings that will work for 100% of people are stock voltages.
you will run into endless problems if you release an undervolted kernel because what works for 75% of people won't work for the rest.
If you adjust voltages to include more people the people that can handle the lower voltages aren't getting the full savings their device can handle. Which defeats the point of releasing an undervolted kernel to save battery.
Undervolting should be up to the individual, just release with stock voltages and make a guide showing people how to undervolt.
Sent from my Nexus 7 using xda premium
nodstuff said:
The only voltage settings that will work for 100% of people are stock voltages.
you will run into endless problems if you release an undervolted kernel because what works for 75% of people won't work for the rest.
If you adjust voltages to include more people the people that can handle the lower voltages aren't getting the full savings their device can handle. Which defeats the point of releasing an undervolted kernel to save battery.
Undervolting should be up to the individual, just release with stock voltages and make a guide showing people how to undervolt.
Sent from my Nexus 7 using xda premium
Click to expand...
Click to collapse
^^ Truth
I've done a bit of pc overclocking over the years and we'd always seek out the best steppings to find cpu batches that would give a better clock speed for less volts. What would work on one person's cpu wouldn't work on another sometimes even within the same stepping. (My current machine is getting long in the tooth but it's running a 33% OC below stock volts and stable as a rock.)
When the N7 cpu's are tested the stock voltage is the point where 100% of them will run without issue. Certainly there are many, maybe even most N7's that will run undervolted but until you try it you just won't know. Undervolting needs to be done on a case by case basis.
I uv by 100mv on every step on Franco kernel and I've never had a sod or reboot. Maybe you could release different versions like light, medium and heavy to cater to different users that have sets than can uv more or less. To address all these people naysaying I say just go for it, don't let these people dishearten you from what you want to do. I'm sure there will always be users who are willing to try
sorry to break the fun lol
Opened a thread with undervolting settings in different situation. For now i think its the lowest possible
bervin said:
I uv by 100mv on every step on Franco kernel and I've never had a sod or reboot. Maybe you could release different versions like light, medium and heavy to cater to different users that have sets than can uv more or less. To address all these people naysaying I say just go for it, don't let these people dishearten you from what you want to do. I'm sure there will always be users who are willing to try
Click to expand...
Click to collapse
That's exactly the same as what I have done. 100mV right across the board, and I have also never had a reboot or any other negative effect from doing it. Just a bit more battery life.
I too UV 100mv across the board. Never had an issue. And I OC up to 1.6ghz.
phonic said:
I too UV 100mv across the board. Never had an issue. And I OC up to 1.6ghz.
Click to expand...
Click to collapse
Same here, no issues with 100mv UV on stock speeds. What would happen if we went too low, would it fail to boot at all or is there some safety mechanism that would allow us to boot into boot loader?
davidoff59 said:
Same here, no issues with 100mv UV on stock speeds. What would happen if we went too low, would it fail to boot at all or is there some safety mechanism that would allow us to boot into boot loader?
Click to expand...
Click to collapse
When either OCing or UVing, you should ALWAYS test out the changes prior to saving them as a persistent boot state. This way, if you set something too high/low and it proves to be unstable, if you restart the device it will revert back to normal.
In the event that you OC/UV too much, yes, you would see signs of instability. In some cases it could show up as soon as you applied to change, in other cases it could take a while to notice. For example, some games or other high processing powered activities could FC/crash. Or your tablet might freeze or reboot. But again, as long as you didn't save your changes as a boot setting, it will be fine once it reboots.
In the event that you did save it, and the settings were unstable for your device, you could boot up into recovery and then manually erase them from taking effect. Recovery doesn't use those settings, as it's technically a different OS. But that can be complicated a process for some. So test test test save. Or don't save and just apply them manually.
Two other points:
Yes, most (all?) devices do have safeguards to protect itself against permanent hardware damage from OC/UVing. If it gets too hot, they will often shut down to protect themselves.
And just because one device can handle being OC'd or UV'd to a certain level doesn't mean they all can. Very minor differences in each component can impact one devices ability from another. The manufacturers only test to see if they can handle the published speeds/etc., but in many cases they can go higher if set to. In others, not so much.
Thanks for that phonic. Given the range of ROMs and kernel's available and the improvements already built in, under volting may not help a lot but every bit helps. Eg this screen on time is pretty good.Close to six hours screen on time with iirc 35% battery remaining.
Paranoid android with motley kernel. I don't over clock the nexus 7 as its fast enough. In fact I under clocked it to 1000 MHz max before and it was still fast but the screenshots are at stock volts and speeds.
it's actually plain simple. If everyone posts results. I can make a kernel with voltages that work for 75% of all people or maybe for 95% of all Nexus 7 owners.
It's called mathematics. But to do that I need as much results as possible.
Easy to do if you know what you are doing, right ?
http://en.wikipedia.org/wiki/Confidence_interval