FORUMS
Remove All Ads from XDA

[KERNEL][GB SENSE][05/10-2011]tristan202-gb-desire v05 (OC/UV/HAVS/BFS/CFS/V(R))

669 posts
Thanks Meter: 346
 
By tristan202, Senior Member on 25th September 2011, 02:41 PM
Post Reply Email Thread
This is my personal kernel, that I decided to release now. It is extremely lean to minimize memory footprint and optimize perfomance. It is built from HTC official GB sources, with some of bananacakes, siberes, snq-s and my own patches. I intend to keep it at 2.6.35.10, as I see more problems than advantages in upstreaming to newer revisions.

Features:

-Hybrid adaptive voltage scaling (HAVS)
-V(R) i/o scheduler
-TinyRCU
-Overclock up to 1190
-Undervolt
-Ondemand, Virtuous and SmartassV2 governors (I use Virtuous for wake and Ondemand for sleep)
-AXI
-Lowered WiFi voltage
-EXT4 support
-snq-'s Autobrightnessmod (Enable all 10 levels)
-sibere's Battfix
-USB fast charge
-Optional 2 way call recording
-Hardcoded SD Speed Patch to 2048. No need for init script anymore
-Hardcoded highly tweaked Lowmemkiller (3584,4096,8192,20992,23040,25088). Throw away Autokiller and/or init scripts.

To make it more lean, I have disabled EXT2 support. SWAP isn't supported either, as I find it completely useless.

I have added CIFS and TUN as modules. To install, download and extract the file and push it to /system/lib/modules like so:

Code:
adb remount
adb push cifs.ko /system/lib/modules/cifs.ko
adb push tun.ko /system/lib/modules/tun.ko
And add the following line to your modules init script:

Code:
insmod /system/lib/modules/cifs.ko
insmod /system/lib/modules/tun.ko
The kernel comes in 2 flavors. BFS and CFS. Differences between them are here:

BFS - Brain F**k Scheduler

The scheduler essentially handles CPU resource allocation. It controls how the CPU ramps up in frequency and down again when not needed. The BFS version is generally very snappy (possibly more so than CFS) but is an older scheduler. It is designed to minimise latency on low spec'd machines (desktops generally)

Further details here:

http://en.wikipedia.org/wiki/Brain_****_Scheduler

CFS - Completely Fair Scheduler

This particular scheduler is newer than BFS. It is designed to make the best of High end machines (desktops again). In the early days, CFS seemed much laggier than BFS but now there is not too much in it. I am quite happily running a modern CFS kernel and I don't experience any lag issues.

Further details here:

http://en.wikipedia.org/wiki/Completely_Fair_Scheduler

I am aware that the BFS version throws some errors about 'bad cgroup data' in logcat, I haven't been able to get rid of them. I have disabled everything cgroup related in the kernel, but vm still throws the errors. Don't know why. Doesn't seem to impact performance.

I personally use the BFS version, as I find it somewhat faster than the CFS one. I have absolutely no wake lag, and I get good battery time.


Thanks go out to: snq-, bananacakes, sibere, tobi01001, thalamus, eviollet. If I forgot anyone, pls inform me.

CHANGELOG:

V05:

XZ compression
Fixed Wifi sleep
Tweaked OJ settings for better responsiveness (bananacakes)
Changed ramdisk compression method to gzip.
Rebuilt tun.ko and cifs.ko

v04b:

Fixed WIFI. (My bad. Forgot to adapt install script after including new ramdisk.)

v04:

Added Lowmemkiller tweak to ramdisk (3584,4096,8192,20992,23040,25088) No need for Autokiller or init scripts anymore. Over time I will move more tweaks into the ramdisk to minimize the need for init scripts.
Updated BFS to 0.406
Reverted battery gauge polling to 60 secs.
Added Virtuous governor. Virtuous is a highly tweaked SmartassV2.
Removed Lagfree governor again, as I found OndemandX better.

v03:

Hardcoded SD Speed Tweak to 2048. No need for init script anymore
Made 2-way call recording optional. Check downloads
Reduced battery gauge polling from 60 to 5 secs. (Untested)
A few bits more, can't remember it all.

v02:

Added Lagfree governor. Gives me a wee bit better battery, but sometimes lags when listening to music. Maybe I'll remove it again. Tell me what you think.
Added a minor change from tobi01001 to the lightsensor driver. Details here
Hopefully fixed USB fast charge.
Compiler optimizations

Link to my github: https://github.com/tristan202
The Following 39 Users Say Thank You to tristan202 For This Useful Post: [ View ] Gift tristan202 Ad-Free
25th September 2011, 02:53 PM |#2  
Senior Member
Flag Kraków
Thanks Meter: 2,007
 
More
Earlier i heard lot's of people complaining about reboots / hang up's when browsing internet with lowered WIFI voltages, i will give it a try today anyway thanks.
25th September 2011, 02:58 PM |#3  
tristan202's Avatar
OP Senior Member
Thanks Meter: 346
 
More
Quote:
Originally Posted by k3lcior

Earlier i heard lot's of people complaining about reboots / hang up's when browsing internet with lowered WIFI voltages, i will give it a try today anyway thanks.

I have been running with lowered wifi voltage for a few days without any problems at all. Doesn't browse much though, but market another wifi stuff have been working fine.
25th September 2011, 03:00 PM |#4  
ironjon's Avatar
Senior Member
Flag Somewhere in time
Thanks Meter: 510
 
More
I'll give you feedback soon.
Thx and congratz.

Tapatalking.
25th September 2011, 03:02 PM |#5  
beanbean50's Avatar
Senior Member
Flag London
Thanks Meter: 1,487
 
More
Quote:
Originally Posted by tristan202

I have been running with lowered wifi voltage for a few days without any problems at all. Doesn't browse much though, but market another wifi stuff have been working fine.

I've been using your kernel for several weeks now (tried all the rest) is this the same as your other one or have you tweaked it some more? and is there any chance you can add Sib's battfix?
25th September 2011, 03:04 PM |#6  
ziggy1001's Avatar
Senior Member
London
Thanks Meter: 971
 
More
Thanks a lot mate the combination of HAVS, BFS, 1190 OC with UV to 825 working very nicely for me
Quote:
Originally Posted by beanbean50

is this the same as your other one or have you tweaked it some more? and is there any chance you can add Sib's battfix?

Just ask HTC they know everything about your phone
25th September 2011, 03:05 PM |#7  
tristan202's Avatar
OP Senior Member
Thanks Meter: 346
 
More
Quote:
Originally Posted by beanbean50

I've been using your kernel for several weeks now (tried all the rest) is this the same as your other one or have you tweaked it some more? and is there any chance you can add Sib's battfix?

siberes battery fix is included, and I have been making some tweaks to since the last release. Some minor stuff, but still some improvement.
25th September 2011, 03:18 PM |#8  
beanbean50's Avatar
Senior Member
Flag London
Thanks Meter: 1,487
 
More
Quote:
Originally Posted by tristan202

siberes battery fix is included, and I have been making some tweaks to since the last release. Some minor stuff, but still some improvement.

wow, many thanks....

is there much difference between the 2 governors ondemandx and smartassV2...?
25th September 2011, 03:20 PM |#9  
ironjon's Avatar
Senior Member
Flag Somewhere in time
Thanks Meter: 510
 
More
Autobrighness mod is included (10 positions in arrays.xml)???

Tapatalking.
25th September 2011, 03:24 PM |#10  
beanbean50's Avatar
Senior Member
Flag London
Thanks Meter: 1,487
 
More
Quote:
Originally Posted by ziggy1001

Thanks a lot mate the combination of HAVS, BFS, 1190 OC with UV to 825 working very nicely for me

Just ask HTC they know everything about your phone

haha...!
Yes, HTC, Google and every other Tom, Dick and Harry...
25th September 2011, 03:26 PM |#11  
tristan202's Avatar
OP Senior Member
Thanks Meter: 346
 
More
Quote:
Originally Posted by beanbean50

wow, many thanks....

is there much difference between the 2 governors ondemandx and smartassV2...?

Ondemand:

The ondemand governor is the default option used by Android. It scales the CPU speed between the minimum and maximum speeds depending on CPU load. If the system needs more speed, the kernel will rapidly scale up the CPU speed. This is available in most kernels, and the default governor in most kernels. When the CPU load reaches a certain point, ondemand will rapidly scale the CPU up to meet demand, then gradually scale the CPU down when it isn't needed.

Smartass:

This is based on the concept of the interactive governor. This is included in some custom kernels. The smartass governor effectively gives the phone an automatic Screen Off profile, keeping speeds at a minimum when the phone is idle.

Interactive:

The 'interactive' governor has a different approach. Instead of sampling the cpu at a specified rate, the governor will scale the cpu frequency up when coming out of idle. When the cpu comes out of idle, a timer is configured to fire within 1-2 ticks. If the cpu is 100% busy from exiting idle to when the timer fires then we assume the cpu is underpowered and ramp to MAX speed.

If the cpu was not 100% busy, then the governor evaluates the cpu load over the last 'min_sample_rate' (default 50000 uS) to determine the cpu speed to ramp down to.

This is available in newer kernels, and becoming the default scaling option in some official Android kernels. The interactive governor is functionally similar to the ondemand governor with an even greater focus on responsiveness.
The Following User Says Thank You to tristan202 For This Useful Post: [ View ] Gift tristan202 Ad-Free
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes