Guys,
doesn't anybody wonder why we only have 2 governors? I googled on how to create one myself and found an example source code, but I don't have the whole android coders kit pro elite 5000
My question, why didn't anybody thought of any additional governor? smartass, interactive, ondemand, conservative, lulzactive and so on...
If anyone is interested I can share the source of the interactive gov...
I hope anyone is able to code a new governor??
Greets
I think it has to do with the governors being hardwired into the Tegra SOC. Correct me if I'm wrong.
The SGS2 has about 10 govs and its also Tegra...dunno though I can be wrong...^^
TheSSJ said:
The SGS2 has about 10 govs and its also Tegra...dunno though I can be wrong...^^
Click to expand...
Click to collapse
The SGS2 is not Tegra, it's Exynos and the T-Mobile variant is Snapdragon.
Tegra doesn't accept governors like the other platforms do. Even the 2 you see in e.g. cyanogenmod don't have any effect whatsoever.
yup, rmcc said thait governors don't do anything on tegras.
Aaaaaww maaaan...what a pity...:/
OK I think this thread can be closed then...I'll report it to the senior mods..
nfin1te said:
yup, rmcc said thait governors don't do anything on tegras.
Click to expand...
Click to collapse
As topogigi said, tegra as several governors, but the p990 tegra drivers are bad programmed, so we have only one hw governor. His Xoom as other governors on stock kernel.
markop90 said:
As topogigi said, tegra as several governors, but the p990 tegra drivers are bad programmed, so we have only one hw governor. His Xoom as other governors on stock kernel.
Click to expand...
Click to collapse
whoever topogigi is, he's wrong. 2.6.32 tegra does not use governors, they were introduced into Tegra by Google for HC.
aremcee said:
whoever topogigi is, he's wrong. 2.6.32 tegra does not use governors, they were introduced into Tegra by Google for HC.
Click to expand...
Click to collapse
So they are "emulated" governors, right?
aremcee said:
whoever topogigi is, he's wrong. 2.6.32 tegra does not use governors, they were introduced into Tegra by Google for HC.
Click to expand...
Click to collapse
I am Topogigi, pleased to meet you. Xoom has Honeycomb by default, another kernel, same cpu. So, I don't really understand what was wrong in my answer. Bad driver in 2.6.32, no effective governors: is that wrong? I was only unsure if actually the two governors that are exposed in userspace (performance and powersave) could have any effect. From your answer, I could assume they have not. Don't still understand the reason why two governors are exposed in userspace, but I will live even ignoring that.
Last line, I'm not so sure why Google should bother writing drivers for Tegra and HC. My guess is that Nvidia did it, but that doesn't matter at all.
Topogigi said:
I am Topogigi, pleased to meet you. Xoom has Honeycomb by default, another kernel, same cpu. So, I don't really understand what was wrong in my answer. Bad driver in 2.6.32, no effective governors: is that wrong? I was only unsure if actually the two governors that are exposed in userspace (performance and powersave) could have any effect. From your answer, I could assume they have not. Don't still understand the reason why two governors are exposed in userspace, but I will live even ignoring that.
Last line, I'm not so sure why Google should bother writing drivers for Tegra and HC. My guess is that Nvidia did it, but that doesn't matter at all.
Click to expand...
Click to collapse
Hi there;
It's not a bad driver, it was a stupid design decision by nvidia which google changed for HC (along with the userspace nvrm transport and odm_kit).
The dvfs stuff is implemented and working as intended by nvidia, the intention was just misguided.
The current implementation is Google's (mostly by Colin Cross), as you can easily see by looking at the source history at both nvidia's and google's source repositories, and radically different from nvidia's original work.
aremcee said:
Hi there;
It's not a bad driver, it was a stupid design decision by nvidia which google changed for HC (along with the userspace nvrm transport and odm_kit).
The dvfs stuff is implemented and working as intended by nvidia, the intention was just misguided.
The current implementation is Google's (mostly by Colin Cross), as you can easily see by looking at the source history at both nvidia's and google's source repositories, and radically different from nvidia's original work.
Click to expand...
Click to collapse
Ok, TY very much: this is the end of the story. Now all is much more clear in my head.
My project the vorkKernel has some "pseudo" govenors in it. Basically not a real govenor, only a limiting thing. The powersave and performance govenor is limiting the freqs to 3-4 steps. So Performance 3-4 higher freqs step and powersave 3-4 lower freqs. Govenor is still the same but atleast something, hehe
Thread closed
Related
12/08/2011
Added an ICS branch.
08/15/2011
Support for voice call recording.
Adjusted voltage range to 700min 1375max. Good luck have fun.
07/06/2011
Fast charge USB
Patch to increase performance of a function often used in the kernel (memcpy)
http://www.incredikernel.com
If you would like incredikernel to keep improving, please turn off adblock for the domain. It is greatly appreciated.
06/27/2011
Fix for devices that use newer touch controllers
Read this: http://forum.xda-developers.com/showpost.php?p=15132827&postcount=3626
Get it at http://www.incredikernel.com
06/19/2011
2.6.38.8
Everything from the 4/19 release
A bunch of changes to fix smartass (I think finally)
Simple sysfs interface to enable/disable audio boost
http://www.incredikernel.com
12/23/2010 - Sense
incrediblec-MR3-2.6.32-g9a2fc16 base
Patched up to 2.6.32.27
OC up to 1.1136ghz
Screen on minimum 245mhz
Screen off 128/384
HAVS/UV
Improved smartass scaling (likes lower frequencies more) - default
BFQ I/O scheduler
Tiny RCU
CFS scheduler tweaks
GPU+
SD card speed fix
TUN + CIFS modules
ext4
Updated yaffs2/atmel touch/wifi
3/5 Multitouch support - NOTE: Some devices only support 2 touches
http://www.incredikernel.com
Use the +25v zip if you have stability issues
I recommend you don't change governors and don't set any profiles. Let smartass do its thing as it takes care of sleep.
If multitouch is not working, you may be able to get it to work by following this:
http://forum.xda-developers.com/showpost.php?p=10231055&postcount=1104
InrediControl:
https://play.google.com/store/apps/details?id=com.incredicontrol
IncrediControl AdFree key:
https://play.google.com/store/apps/details?id=com.incredicontrolAF
Fastcharge widget:
https://play.google.com/store/apps/details?id=com.incredicontrol.fastchargewidget
Because of many requests to add this:
chad0989 said:
Since I haven't seen a kernel from the latest HTC source I decided to cook one up. Scored 1529 on quadrant vs a best of 1306 with the stock HTC source. No overclocking or undervolting. May toy with that later.
incrediblec-MR3-2.6.32-g9a2fc16 base
BFS318 task scheduler
BFQ I/O schedular
GPU+
SD card speed fix
All cpu governors enabled
Screen off set minimum 245 max 384
http://www.multiupload.com/4X1BETLBZ0
Enjoy
Click to expand...
Click to collapse
looks nice, would you mind if i included this in my rom?
Can you mod a kernel for cm6
Its already made just add more features? ????
Sent from my ADR6300 using XDA App
I would imagine there's a few guys working on this? Good work getting it out first.
Gonna give it a go!
Question, is the original kernel BFS or did you add that in? Just curious as I really like the UI smoothness of the stock .17 and I have absolutely 0 knowledge of linux besides what i've picked up from reading xda.
Thanks so much for cookin this up, smells good!
scottylove said:
Question, is the original kernel BFS or did you add that in? Just curious as I really like the UI smoothness of the stock .17 and I have absolutely 0 knowledge of linux besides what i've picked up from reading xda.
Thanks so much for cookin this up, smells good!
Click to expand...
Click to collapse
lol htc wouldnt cook in the bfs scheduler
chad,
would you actually mnd whipping up a cfs version? i find that cfs is much more stable than bfs
sweet dling now ...ty
edit- holy benchmarks!
Sent from my ADR6300 using XDA App
Thanks Chad! Just flashed it.
I just flashed it. What is GPU+ anyway?
DopeShiziot said:
looks nice, would you mind if i included this in my rom?
Click to expand...
Click to collapse
Go for it.
DopeShiziot said:
chad,
would you actually mnd whipping up a cfs version? i find that cfs is much more stable than bfs
Click to expand...
Click to collapse
Did you have issues with this kernel? BFS really should be better suited for phones where a smooth UI is important.
Here's a little reading material:
http://www.google.com/url?sa=t&sour...qsCyDw&usg=AFQjCNG7ORB_chlUiype8OJZES-5bHzSjA
alexdeluxe said:
I just flashed it. What is GPU+ anyway?
Click to expand...
Click to collapse
Its a patch for sense kernels that increases 2d and 3d performance.
http://forum.xda-developers.com/showthread.php?t=825304
chad0989 said:
Go for it.
Did you have issues with this kernel? BFS really should be better suited for phones where a smooth UI is important.
Here's a little reading material:
http://www.google.com/url?sa=t&sour...qsCyDw&usg=AFQjCNG7ORB_chlUiype8OJZES-5bHzSjA
Click to expand...
Click to collapse
thanks!
and no, i havent had issues, but in the past ive found cfs to be much more stable and reliable.
Make this for aosp please. Ziggy stopped doing them, King's had some issues, and Koush's test doesn't have all the governors enabled.
Source needed
Please post or link your source changes. It is required under the GPL. Thanks for your cooperation.
overground said:
Please post or link your source changes. It is required under the GPL. Thanks for your cooperation.
Click to expand...
Click to collapse
is that by chance why the kings kernels were removed? j/w
DopeShiziot said:
is that by chance why the kings kernels were removed? j/w
Click to expand...
Click to collapse
You guessed it.
overground said:
Please post or link your source changes. It is required under the GPL. Thanks for your cooperation.
Click to expand...
Click to collapse
There you go.
i wonder why when i ask any if its possible for cm6
i always get ignored????
anybody have good resullts? battery life? about to flash, just curious?
thanks
DS36 said:
i wonder why when i ask any if its possible for cm6
i always get ignored????
Click to expand...
Click to collapse
What did you need done?
I already postet this in the Atrix 4G section, because they have a thread there about this topic. But they are discussing more about the locked bootloader than about overclocking and as we don't have such a thread here, I will start this one.
Perhaps you think overclocking actually does not make much sense on this device atm, as it is really fast, but I always like to get most out of my hardware that is possible.
I dont think, I would enable overclocking for everyday use now, but it would be cool to be able to do so if needed. At 1200 MHz as Nvidia had planned for the Tegra2 3D the Phone would for sure even beat the Omap 4 in Optimus 3D.
I am totaly new to Android and also to Linux, so I am not sure if this is helpful, but I have seen something very interesting in the Optimus 2x review at Anandtech.
I dont know where these variables are stored and what is needed to, but for me it looks as if we are able to change them, overclocking should be possible on the Optimus 2X.
It would be great if some oft the developers here could look into this when the Optimus Speed finally has been shipped…
I was wondering the same thing. So i checked other Tegra2 powered devices. And as far as i know none has been overclocked yet. Correct me if am wrong.
So far no overclock is needed since this phone is reaaaaaaalllly fast.
But I am sure as soon as it needs some extra power developers will figure out how to do it
Michael Huang (author of SetCPU) has just overclocked the Xoom tablet today. Now, while the Xoom is a Tegra2 device, its kernel is (apparently) Google based whereas others are nVidia based.
In overclocking the Xoom from 1GHz to 1.5GHz though, he saw about a 1/3rd increase in performance on Linpack and Quadrant. Looks promising so far.
Watch the video here http://www.youtube.com/watch?v=cLNjHyAi8BI and follow Michael on Twitter here: http://twitter.com/coolbho3k
The Reason to Overclock the Atrix in my opinion is as follows
The Linux Based Webtop is slow in reviews
So when pluged into mains power it would be very usful to overclock the device to make the most of the webtop with less lag issues making the device far more usful if you need/want that feature.
Maby possible to make a custom dock (stick fan on it) and clock higher
I'm more interested in underclocking, especially when screen is off with a screen off profile in SetCPU. What do you think is the lowest possible frequency I could set it at?
You can put all the way down. I use the same settings in both my N1 and the 2x. Saves some juice. What I really want to see is custom kernels, pref undervolted if its possible.
Sent from my LG-P990 using XDA App
According to the SetCPU changelog, overclocking/underclocking is now possible:
2.1.1 - Fixed an issue with profiles backup in CM7.
- Added support for the Motorola Xoom, Atrix 4G, and other Tegra 2 devices.
- Fixed various bugs.
- Tablet optimized UI and more profiles coming soon!
2.1.1a - Fixed the 0 MHz display issue on some devices.
Click to expand...
Click to collapse
Convel said:
According to the SetCPU changelog, overclocking/underclocking is now possible:
Click to expand...
Click to collapse
How can you overclock with SetCPU then on o2x? Believe only the powersaving underclocking on demand is working.. overclock needs more work i believe.
The Xoom has been overclocked, but apparently the kernels are from google, which made it easier.
If anybody knows more about this, please correct me
The kernel must be adjusted to make overclock work. I got to read myself into this, but perhaps someone else knows already everything to it .
GPU
i wonder if the gpu can be overclocked, would be nice if it was possible too just OC the gpu and compare the results. Or do you think that the CPU and GPU clock speeds are somehow linked???
Any thoughts?
bumping cause im curious. Can any one please answer ?
well this is arm so id day they are linked
are we able to read the clock speed of hte gpu. does is change?
Look at the date mate
The GPU is not linked with the CPU. The GPU is overclocked in different kernels. Spica's kernel allows on the fly overclocking of the GPU.
After having this device for over a year, the only time i needed OC is for 720P Youtube or Youtube HD app. No OC on the GPU has ever been needed. Yes i have been playing around with 1.2 and 1.4, but they just consumed battery more than giving a better experience. I would go so far and say undervolt it and put it on 900Mhz.
I put together a simple custom voltage interface which can be used to change both the ARM (CPU) and the internal voltage. It is the perfect companion for LiveOC, but does not depend on it.
In /sys/class/misc/customvoltage the ARM and internal voltages for the different frequency states are set by passing a string of voltage values in mV to armvolt or intvolt (for example 'echo "1250 1200 1000 950 950" > armvolt').
This should work no matter the number of frequency states implemented in the kernel. This replaces the custom UV interface most kernels have implemented and both tweaks do not work together. So if you decide to include this tweak, you will have to remove the other and this will break the voltage control with SetCPU and Proton. and it is compatible to SetCPU and similar tools.
Changes to the source: http://www.pastie.org/2806507
BUGFIX:
Made Custom Voltage compatible with the typical CPUfreq UV interface (UV_mV_table) found in many kernels thus making it compatible with SetCPU and similar tools.
Bugfix: http://www.pastie.org/2806920
BUGFIX #2:
Added the entries 'max_arm_volt' and 'max_int_volt' to the sysfs interface which can be used to change the maximum values allowed for the ARM and internal voltages.
Bugfix: http://www.pastie.org/2812494
No further patches will be published here. I have set up a git repo for all my tweaks. Each mod has its own branch to keep the tweaks cleanly separated and one can simply pull the latest patches from the corresponding branch.
https://github.com/Ezekeel/GLaDOS-nexus-s/tree/customvoltage
omg... you with another great mod... we CANNOT CATCH UP AT ALL.. you know
Made Custom Voltage compatible with the typical CPUfreq UV interface (UV_mV_table) found in many kernels thus making it compatible with SetCPU and similar tools.
Bugfix: http://www.pastie.org/2806920
True professionalism
Thank you Ezekeel, you never stop surprising me. I'll test this in a bit.
Ezekeel said:
I put together a simple custom voltage interface which can be used to change both the ARM (CPU) and the internal voltage. It is the perfect companion for LiveOC, but does not depend on it.
In /sys/class/misc/customvoltage the ARM and internal voltages for the different frequency states are set by passing a string of voltage values in mV to armvolt or intvolt (for example 'echo "1250 1200 1000 950 950" > armvolt').
This should work no matter the number of frequency states implemented in the kernel. This replaces the custom UV interface most kernels have implemented and both tweaks do not work together. So if you decide to include this tweak, you will have to remove the other and this will break the voltage control with SetCPU and Proton. and it is compatible to SetCPU and similar tools.
Changes to the source: http://www.pastie.org/2806507
BUGFIX:
Made Custom Voltage compatible with the typical CPUfreq UV interface (UV_mV_table) found in many kernels thus making it compatible with SetCPU and similar tools.
Bugfix: http://www.pastie.org/2806920
Click to expand...
Click to collapse
wow...
just amazing!
Thanks Ezekeel~! your name will forever be engraved on the hall of NS!
Ezekeel i know that you are a God in mods
But, can you explain to me how i will put this mod?
I don't understand what i have to do, i have to change some code lines? replace? or other thing?
if you made a superfast "how to" i will be vert grateful
Yusei said:
Ezekeel i know that you are a God in mods
But, can you explain to me how i will put this mod?
I don't understand what i have to do, i have to change some code lines? replace? or other thing?
if you made a superfast "how to" i will be vert grateful
Click to expand...
Click to collapse
This is kernel code.
franciscofranco said:
This is kernel code.
Click to expand...
Click to collapse
and how i change it?
With all these mods why don't you publish your own kernel Ezekeel?
Yusei said:
and how i change it?
Click to expand...
Click to collapse
a little get starter for u..
Code:
http://wiki.cyanogenmod.com/wiki/Building_Kernel_from_source
wait a minute
this is a mod that the kernel builders will put in their own kernel right?
i'm so stupid
sorry guys
I guess I will have to update Spark to include all these new additions from Ezekeel. Give me a few weeks and I will try and have a bit of a toolkit ready!
Sent from my Nexus S
Edit: also, great work Ezekeel! Just a question though, what was the reason for wanting to put together your own? Is it simpler, more stable, or something else? Sorry, I haven't compared anything either, I can't easily do so on my phone.
Jonathon Grigg said:
I guess I will have to update Spark to include all these new additions from Ezekeel. Give me a few weeks and I will try and have a bit of a toolkit ready!
Sent from my Nexus S
Edit: also, great work Ezekeel! Just a question though, what was the reason for wanting to put together your own? Is it simpler, more stable, or something else? Sorry, I haven't compared anything either, I can't easily do so on my phone.
Click to expand...
Click to collapse
hey good going..
i was going to check out app dev over the weekend to get all of ezekeels mods into one app...
mind if i try?
Sent from Divinus Nexus S...
Jonathon Grigg said:
I guess I will have to update Spark to include all these new additions from Ezekeel. Give me a few weeks and I will try and have a bit of a toolkit ready!
Sent from my Nexus S
Edit: also, great work Ezekeel! Just a question though, what was the reason for wanting to put together your own? Is it simpler, more stable, or something else? Sorry, I haven't compared anything either, I can't easily do so on my phone.
Click to expand...
Click to collapse
it could be a great idea, I think.
Me, I use script, but I see a lot of people how wants to use Ezekeel Mods without knowing a thing about scripts,
or even don't know how to use terminal emulator.
thanks for this great idea.
No more question to the kernels devs about how to activate this or this...
I think many of them will be gratefull for that.
Jonathon Grigg said:
I guess I will have to update Spark to include all these new additions from Ezekeel. Give me a few weeks and I will try and have a bit of a toolkit ready!
Sent from my Nexus S
Edit: also, great work Ezekeel! Just a question though, what was the reason for wanting to put together your own? Is it simpler, more stable, or something else? Sorry, I haven't compared anything either, I can't easily do so on my phone.
Click to expand...
Click to collapse
this mod will not only enable you to modify armvolt but also intvolt.
psygbert said:
this mod will not only enable you to modify armvolt but also intvolt.
Click to expand...
Click to collapse
can any1 explain the differences??? and what is exacly each one?
yaronyud said:
can any1 explain the differences??? and what is exacly each one?
Click to expand...
Click to collapse
The ARM voltage is for the CPU, the internal voltage for the bus (and also GPU I believe). If you increase the bus/GPU speeds with LiveOC you might have to increase the internal voltages additionally to the ARM voltages to get it stable.
Made a small improvement.
Added the entries 'max_arm_volt' and 'max_int_volt' to the sysfs interface which can be used to change the maximum values allowed for the ARM and internal voltages.
Bugfix: http://www.pastie.org/2812494
Jonathon Grigg said:
I guess I will have to update Spark to include all these new additions from Ezekeel. Give me a few weeks and I will try and have a bit of a toolkit ready!
Sent from my Nexus S
Edit: also, great work Ezekeel! Just a question though, what was the reason for wanting to put together your own? Is it simpler, more stable, or something else? Sorry, I haven't compared anything either, I can't easily do so on my phone.
Click to expand...
Click to collapse
Where can I find this app of yours? Does it have a thread?
more stable Live OC?
Ezekeel said:
The ARM voltage is for the CPU, the internal voltage for the bus (and also GPU I believe). If you increase the bus/GPU speeds with LiveOC you might have to increase the internal voltages additionally to the ARM voltages to get it stable.
Click to expand...
Click to collapse
Ah!
more stable Live OC?
excessive +percentage got the phone to lose IMEI
I had my device repaired in samsung A/S center. (reentering IMEI)
and I backuped "/efs/" folder to SD, PC just in case
---------- Post added at 11:02 AM ---------- Previous post was at 10:58 AM ----------
ellesshoo said:
Where can I find this app of yours? Does it have a thread?
Click to expand...
Click to collapse
[App] Spark Mod Manager - Beta 1 [5/9/2011]
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
Finally after someone pm'd me I looked back into GPU Overclocking.
New thread created issues with old thread OP permissions (people seem to be asking the same questions over and over again all information will be kept in OP & DO READ THE THREAD, repetitive questions will now be ignored)
Benefits:
Smoother UI
Handle 2d & 3d core GPU intensive applications & games
Currently only 2D core has been overclocked working on 3D core OC
2D-core original value - 192mhz OC to 245mhz DONE achieved 25% performance boost grp_2d_clk outputs 245760000hz
3D-core original value - 245mhz OC to 300+mhz WIP hoping to achieve 40-50% performance boost
2D-core OC only Download: Coming soon...
Download Links for other devices coming soon...
Works for all HTC Sense/Cm9/Cm10 kernels (Just ask a kernel developer for your device to implement the source code)
Note: Don't have internet on PC so providing 3 main files that need replaced for 2D-core OC to work
Download link to source code: http://d-h.st/wbH
3D-CORE OC TESTS Download: Coming soon...
Do check under sys/kernel/debug/htc_clock/clks/ look for file with all clocks & look for GRP_clks (Graphics clock)
OK so basically today I've been thinking and I've come to the conclusion that I will release the 2D-core OC patch As Soon As Possible, 3D-core Core OC is NOT Impossible but for now I'll give it a break, I will attempt 3D-core OC If/When I can get a hold of a msm7x30/msm8x55 device, as it will make it much easier for both me & users.
So for now you can enjoy the 50mhz increase/bump up, perf boost 25% in 2D-core (will increase performance in both 2D/3D intensive appications as 2D-core is used for 3D AFAIK and increase User Interface performance (Note: This will not take a hit on battery life)), I will also release a couple of fixes on patchas kernel that shouldnt be there/set etc.
(Theres a device available in my area for roughly £90, if anyone wants to contribute towards getting that device or can donate a device , more than welcome and shoot me a PM so I can list you here.)
(This isnt a promise of 3D-Overclock if you donate, if you donate please do so expecting nothing I will only attempt 3D-overclock)
Working device list - all kernel 3.0+ msm7x30/msm8x55 soc devices.
Main thread is in Desire HD Android Development section: http://forum.xda-developers.com/show....php?t=2368497
Hi, I was just reading your thread thanks for this
Is it fully working? The older implementation of adding more steps to arch/arm/mach-msm/clock-7x30.c and devices-7x30 seems to give an error
https://github.com/brymaster5000/B-...c9c6dc0dddfa2dad7f81ae3#commitcomment-3680984
Thanks
poondog said:
Hi, I was just reading your thread thanks for this
Is it fully working? The older implementation of adding more steps to arch/arm/mach-msm/clock-7x30.c and devices-7x30 seems to give an error
https://github.com/brymaster5000/B-...c9c6dc0dddfa2dad7f81ae3#commitcomment-3680984
Thanks
Click to expand...
Click to collapse
2D-core overclock to 245mhz 100% working just use the source code I dropped
EDIT: checked out the git and that GPU OC is totally false and shouldn't work AFAIK ,I am referring to both commits:
https://github.com/brymaster5000/B-Team_AOSP/commit/42eec99d42e58f57a412f385197b268ade095ef5
https://github.com/brymaster5000/B-Team_AOSP/commit/b598ecf7653c66dcca0b7ca025420486996be80f
Sense 3d/2d
Hey,
I'm guessing that the "3d" sense launcher (e.g. sense 4.0), is actually using the 2d core, or is it actually in 3d?
Anyway, 192mhz to 245mhz is a huge difference, looking forward to updates!
cakedev said:
Hey,
I'm guessing that the "3d" sense launcher (e.g. sense 4.0), is actually using the 2d core, or is it actually in 3d?
Anyway, 192mhz to 245mhz is a huge difference, looking forward to updates!
Click to expand...
Click to collapse
Doesnt matter if its using 2d or 3d cause the 2d core is used in both 2d & 3d rendering
Anywayz Devs + testers join IRC will make life easier
Irc freenode #s1gpuoc
Okay after looking @ GPU Overclock for 2 weeks, This is the news on GPU OC for MSM8x55/MSM7x30 socs.
My findings...
2D-core OC from 192mhz to 245mhz successful.
3D-core OC will not happen without me obtaining the datasheet (which is proprietary)
The clocks are protected, via Ownership/Permissions, and maybe an RCU/MPU
No Overclocking the CPU does NOT Overclock the GPU, thats the worst thing I've heard in my life lol.
The lowest the GPU can hit is 192mhz or lpxo freq
Bus is not overclockable, it always is 192mhz
EBI_2D_clk will and has always been 0mhz
Modifying kgsl platform data and/or the graphics table with random values or even calculated values from correct pll freqs will NOT OC the gpu
it's ashame the GPU clocks are protected.
IF anyone is looking to continuing this project and is on the right track you're more than welcome to get in contact with me, especially if you have the msm7x30 datasheet.
The QSD8x50 soc is more open than this soc, so I'm doing a few tests on the HD2
Okay after looking @ GPU Overclock for 2 weeks, This is the news on GPU OC for MSM8x55/MSM7x30 socs.
My findings...
2D-core OC from 192mhz to 245mhz successful.
3D-core OC will not happen without me obtaining the datasheet (which is proprietary)
The clocks are protected, via Ownership/Permissions, and maybe an RCU/MPU
No Overclocking the CPU does NOT Overclock the GPU, thats the worst thing I've heard in my life lol.
The lowest the GPU can hit is 192mhz or lpxo freq
Bus is not overclockable, it always is 192mhz
EBI_2D_clk will and has always been 0mhz
Modifying kgsl platform data and/or the graphics table with random values or even calculated values from correct pll freqs will NOT OC the gpu
it's ashame the GPU clocks are protected.
IF anyone is looking to continuing this project and is on the right track you're more than welcome to get in contact with me, especially if you have the msm7x30 datasheet.
The QSD8x50 soc is more open than this soc, so I'm doing a few tests on the HD2