• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!
  • Fill out your device list and let everyone know which phones you have!    Edit Your Device Inventory

[Kernel] [.38.8] intersectRaven's Kernel (AVS/CAVS)01/08/2011 22:00

Status
Not open for further replies.
Search This thread

intersectRaven

Senior Member
Mar 13, 2010
2,260
1,558
www.intersectraven.net
This is my own personally compiled kernel based on the latest kernel from Cyanogen's Github repository with Kmobs' undervolt modifications, CodeAurora's AVS code, pershoot and rotohammer's audio gain mod and several compiler optimizations based on initial idea from psyq.

Only major releases will be advertised here.
All changes since 05/05 can be found at my Euroskank host:
http://intersectraven.euroskank.com/kernels/
*Thanks to RyanMacG for the free hosting! :)

Old uploads with minor changes can be found at my MediaFire folder or my Bitpad folder:
http://www.bitpad.co.uk/intersectraven
http://www.mediafire.com/intersectRaven

Major features:
- based on latest Cyanogen Mod kernel source from his GitHub repository
- numerous compiler optimizations with a custom compiler by redstar3894
- all CPU power governors for user dependent tweaking of power saving method
- Hybrid AVS (Adaptive Voltage Scaling combined with Static Voltage Scaling) support for maximum possible power savings dependent on CPU requirements and a customizable version (CAVS) for people who like to tweak how far their N1s can go
- universal update.zip template made by Koush

Instructions:
1.) Reboot to recovery and flash the update.zip directly.

OR

Instructions for zImage and bcm4329.ko driver extracted from the update.zip(from command line):
1.) adb remount
2.) adb push bcm4329.ko /system/lib/modules
3.) adb reboot bootloader
4.) fastboot flash zimage zImage
5.) fastboot reboot

OR

Use ADB GUI by minooch found here:
http://forum.xda-developers.com/showthread.php?t=666964

*please note the instructions...push the wifi driver BEFORE rebooting for flashing zImage...if your wifi is turned on when you reboot before you pushed the wifi driver for the kernel, there is a chance that you will go into a bootloop due to the incompatible wifi driver!

Changelog:
20120108_2143:
- just merged pershoot's commits

20111203_11XX:
- enabled MSM EHCI

20111114_23XX:
- integrated CM's commits (mainly bluetooth and WiFi fixes)

20111111_19XX:
- compiled using updated Mjolnir/Linaro compiler hybrid (having problems with our Mjolnir GCC)
- enabled SYN_COOKIES as requested
- some tweaks to the VFS settings
- switched network scheduler to SFB
- switched TCP congestion to Veno from YeaH (seems it's better for devices with a greater chance of random drops of packets)

20111010_11XX:
- disable CleanCache for YAFFS (too complex to change)
- more proper reapplication of changes from 3.0

20111009_22XX:
- enabled CleanCache for YAFFS, EXT3 and EXT4 (experimental)

20111008_23XX:
- ported BogoMIPS calibration from 3.0
- added CleanCache from 3.0
- switched to SIO from BFQ
- block IO batching from 3.0
- activate_pages batching from 3.0

20110904_07XX:
- added SmartAssV2 CPU governor

20110828_13XX:
- fix AVS to actually work (see previous latest post for apology... :eek:)
*this should restore the instability on some devices that can't handle AVS :p

20110828_00XX:
- prevent excessive suspend attempts
- optimized sha1 implementation

20110813_15XX:
- increased NAND buffer to 8k similar to codeaurora's version
- enabled 8-bit transfers for when the MMC card supports it

20110724_20XX:
- SmartAss improvement from the test kernels
- AVS code improvement also from the test kernels (hopefully improved the stability)
- RCU optimizations
- updated Mjolnir compiler

20110713_10XX:
- re-hauled SmartAss governor:
* interactive threads instead of workqueues to improve responsiveness when ramping-up frequencies
* reduced stepping frequency to use lower frequencies more

20110707_08XX:
- fixed the Voice Search problem

20110706_09XX:
- code cleanup
- additional tweaks

20110628_09XX:
- ARM improvements to memcpy and memmove operations from Wildfire (arco's kernel source)
- cherry-picked serial number commit from CM kernel

20110608_21XX:
- rebased everything together with removal of worthless commits
- added 2 new governors from SavagedZen kernel (SavagedZen & InteractiveX)
- updated code of Smartass governor to the one in SavagedZen since it seems more updated than the one I found

20110527_21XX:
- new method for addressing slow writes on USB from CodeAurora (although it's still slow using native USB mount and I didn't test using another mounter)
- some SIRC potential bug fixes
- input event handling modification from Google

20110523_08XX:
- compiled using updated Mjolnir

20110522_11XX:
- upgraded to v2.6.38.7

20110521_15XX:
- interrupt masking
- smd_tty buffer limit implementation

20110519_22XX:
- fix for potential bug and power leak improvement in DSP driver
- GPIO tweaks

20110516_19XX:
- increased DMA zone to 14MB (may speed some things or may not)
- timer workarounds have been removed as they're unneccessary on Scorpion
- prevent reading from write-only registers (just silly)
- used relaxed access functions for some functions
- remove extra interrupts sent from the SMD channel

20110515_21XX:
- added another commit from android unmerged which implements a watchdog to catch lockups during device resume
- fix for wakelocks which addresses the problem where while being connected to a computer, any attempt to power up will result in display immediately shutting off with touchscreen buttons still on
- uses an updated Mjolnir compiler

20110514_17XX:
- rebased everything
- removed some commits which were useless on the N1
- more zen branches merged
- WiFi-Fast patch has been integrated in all kernels since it seems to have no effect on battery (no more separate WiFi-Fast release)

20110511_22XX:
- reverted a change made to PMEM driver since the commit it was reliant to was reverted (sorry! didn't notice this...I wasn't too critical of my earlier cherry-picks... :p)
Link to a file which contains all kernels:
http://hotfile.com/dl/117478444/390f688/intersectR_-_20110511_22XX.zip.html

20110510_18XX:
- updated to 2.6.38.6
- committed some more video driver commits from CodeAurora
Link to a file which contains all kernels:
http://hotfile.com/dl/117350839/0a9a504/intersectR_-_20110510_18XX.zip.html

20110509_14XX:
- merged some commits from Android repositories that were still unmerged yet may prove useful for Ashmem and RPC
Link to a file which contains all kernels:
http://hotfile.com/dl/117209820/5b7fe7b/intersectR_-_20110509_14XX.zip.html

20110507_21XX:
- even more improvements from CodeAurora :p
Link to a file which contains all kernels:
http://hotfile.com/dl/117048553/0831385/intersectR_-_20110507_21XX.zip.html

20110506_15XX-16XX:
- enabled cache error reporting as this is indicative of how tolerant your N1 is to AVS undervolting
- smartass governor (from Temasek)
*this was mistakenly included in the previous release
- a minor kernel scheduling statistic commit
Link to a file which contains all kernels:
http://hotfile.com/dl/116922979/5fb2ec0/intersectR_-_20110506_15XX-16XX.zip.html

20110505_16XX-17XX:
- updated Mjolnir compiler
Link to a file which contains all kernels:
http://hotfile.com/dl/116827854/5839b43/intersectR_-_20110505_16XX-17XX.zip.html

20110505_08XX-09XX:
- AVS and CAVS now both allow changing of voltages on-the-fly. The only difference now is that AVS is undervolted by default while CAVS is undervolted to the same voltages that CM uses in his SVS kernel
- uses eviollet's on-the-fly voltage modification system instead of the previous one I had which is a lot more flexible
Link to a file which contains all kernels:
http://hotfile.com/dl/116798881/0d5b5bf/intersectR_-_20110505_08XX-09XX.zip.html

20110503_09XX:
- updated to version 2.6.38.5
Link to a file which contains all kernels:
http://hotfile.com/dl/116600585/b76a4b6/intersectR_-_20110503_09XX.zip.html

20110502_10XX:
- synced with pershoot's latest modifications which mirror CM's latest addition with regards to USB accessory function (not too important I think since it seems to be for future ADB use)
- uses an updated Mjolnir compiler (20110429)
Link to a file which contains all kernels:
http://hotfile.com/dl/116528049/1865aa6/intersectR_-_20110502_10XX.zip.html

20110424_11XX:
- reverted WiFi driver to same version CM uses for mainline kernel to fix channel 11 issues with the newest one

20110422_12XX:
- updated to 2.6.38.4
- compiler updated

20110421_15XX-16XX:
- first files to be hosted by Bitpad (http://www.bitpad.co.uk/intersectraven/)
*Thanks to MajorProbes :D
- just a minor release since I only updated the compiler

20110416_20XX:
- several compiler optimizations enabled (loop unrolling, peeling, etc.)
- zen-kernel cherry-picks for memory and fs optimization

20110415_23XX:
- updated to 2.6.38.3
- compiled using latest Mjolnir with an experimental merge by redstar

20110409_23XX:
- integrated a bluetooth fix and MMC quirks improvement from official Google repositories

20110407_13XX-14XX:
- integrate CM commits on futex optimization and removal of dodgy optimizations

20110403_12XX:
- fix for USB transfer speed (should now hold at 1MB/s without dropping)

20110401_22XX-23XX:
- first 2.6.38.2 release based on pershoot's 2.6.38
- added the usual mix (AVS, SLQB, CodeAurora patches, etc.)
- compiled using Mjolnir GCC 4.6.1
- changed FPU optimization to NEON

20110328_08XX-09XX:
- updated to 2.6.37.6

20110328_07XX:
- compiled using Mjolnir GCC4.6.0
- enabled Link Time Optimization and Graphite Optimization (use Google for definitions) :p

20110326_08XX:
- updated BFQ to v2-r1

20110324_18XX:
- updated to 2.6.37.5

20110320_17XX:
- merged Nick Piggin's RCU patches which were originally for 2.6.38 (one of the things Linux was excited about according to Phoronix)

20110319_09XX:
- merged latest CM kernel commits which enables the ff:
- enabled RCU boost
- enabled touchscreen filter (reduce CPU load made by touchscreen)

20110315_22XX:
- updated to 2.6.37.4

20110312_23XX:
- round 2 of CM's wonk fix attempt integrated
- toolchain update
*for links, go to my MediaFire folder as specified above

20110311_1623:
- integrated cyan's wonk fix attempt
- VPN "fix" (I don't like this one since it's just a backport of the old PPP interfaces)
*for links, go to my MediaFire folder as specified above

20110308_2246:
- updated to .37.3
- based on CM's latest kernel source
- with SLQB and BFQ v2
- regular and customizable AVS
- some CodeAurora patches
*for links, go to my MediaFire folder as specified above

20110213_1506:
- corrected minimum voltage value to 800mV
CFS-HAVS-CM7-NOBOOST -> http://www.mediafire.com/?m32mi1744ksb55m

20110213_1035:
- test release for new AVS-CUSTOMIZEABLE build which allows for runtime customization of AVS minimum and maximum limiters for more flexible AVS voltages depending on your CPU tolerance (/sys/module/avs/parameters/avs_adjust)
- AVS debugging outputs can also be toggled in runtime (/sys/module/avs/parameters/avs_debug -> set to 0 to not display, 1 to display)
CFS-HAVS-CM7-NOBOOST -> http://www.mediafire.com/?bt7mmtlmg407ne1
*format for avs_adjust is:
frequency,minimum voltage,maximum voltage
e.g.
echo 245000,925,975 > avs_adjust
**AVS debugging output will be enabled by default when you modify the limits

Finally created a github to store all of my kernel modifications:
http://github.com/intersectRaven/

To follow me for updates on Twitter:
http://www.twitter.com/intersectRaven
 
Last edited:

britoso

Senior Member
Jan 13, 2010
2,791
301
Orlando
Finally a thread!
been using your kernels for some time now, good work!
---------------------------------------------------------------

Updates: I thought I'll use this space to provide some info since its right next to the OP :)

BFS:
BFS is the Brain **** Scheduler. It was designed to be forward looking only,
make the most of lower spec machines, and not scale to massive hardware. ie
it is a desktop orientated scheduler, with extremely low latencies for
excellent interactivity by design rather than "calculated", with rigid
fairness, nice priority distribution and extreme scalability within normal
load levels.
http://ck.kolivas.org/patches/bfs/bfs-faq.txt

CFS
Completely Fair Scheduler is the name of a task scheduler which was merged into the 2.6.23 release of the Linux kernel. It handles CPU resource allocation for executing processes, and aims to maximize overall CPU utilization while maximizing interactive performance.
http://en.wikipedia.org/wiki/Completely_Fair_Scheduler

Comparison of BFS vs CFS: 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.
 
Last edited:

intersectRaven

Senior Member
Mar 13, 2010
2,260
1,558
www.intersectraven.net
@intersectRaven - in the http://forum.xda-developers.com/showthread.php?p=6003800#post6003800Audio Mod thread rotohammer incorporated settings that increased both the bluetooth and in-call/earpiece volume. is your audio fix for a headset/bluetooth headset and/or does it incorporate higher values for in-call volume as well? thanks!

Hmmm...thanks for pointing that out. I'll probably release a new version later which will have this. (loading my Nexus Compilation Environment VM now...) :p

*Edit: I recompiled with the .min and .max settings he specified but reading further back it seems he changed some other things so I can't be sure if just this will provide the volume increase desired.
 
Last edited:

intersectRaven

Senior Member
Mar 13, 2010
2,260
1,558
www.intersectraven.net
@intersectRaven - in the http://forum.xda-developers.com/showthread.php?p=6003800#post6003800Audio Mod thread rotohammer incorporated settings that increased both the bluetooth and in-call/earpiece volume. is your audio fix for a headset/bluetooth headset and/or does it incorporate higher values for in-call volume as well? thanks!

Hmmm...thanks for pointing that out. I'll probably release a new version later which will have this. (loading my Nexus Compilation Environment VM now...) :p

*Edit: I recompiled with the .min and .max settings he specified but reading further back it seems he changed some other things so I can't be sure if just this will provide the volume increase desired.
 

intersectRaven

Senior Member
Mar 13, 2010
2,260
1,558
www.intersectraven.net
Last edited:

rotohammer

Senior Member
Jan 2, 2007
1,386
1,066
New Jersey
I'm working on a mod that will allow us to change the min_vol and max_vol from a file. Kernel SOP dictates this not advised, but I don't have time to learn how to implement a procfs hook.
 

d.cortez

Senior Member
Dec 30, 2005
3,339
598
north texas
I just compiled one with higher settings based on rotohammer's research. I think I'll stick with the default ones in my previous version though so its okay to skip this latest one. :)

For those who wanted to try out the modified values:
http://www.mediafire.com/?dqynw1inh3y <= 2.6.32
http://www.mediafire.com/?mmjwxzjlmmw <= 2.6.33
i'm currently using MoDaCo Alpha 19, which reports using a 2.6.33.1 kernel. so i would use the 2.6.33 version, correct? just to confirm, are your volume values the same as used by rotohammer? also, where is the zImage stored on my device, that is if it's actually saved at all (yes, i am a newbie, lol). thanks!
 

intersectRaven

Senior Member
Mar 13, 2010
2,260
1,558
www.intersectraven.net
i'm currently using MoDaCo Alpha 19, which reports using a 2.6.33.1 kernel. so i would use the 2.6.33 version, correct? just to confirm, are your volume values the same as used by rotohammer? also, where is the zImage stored on my device, that is if it's actually saved at all (yes, i am a newbie, lol). thanks!

yes u would use the .33 if ever...the links u quoted does use rotohammer's values...and lastly, the zimage is flashed onto the image/kernel area in your device's boot partition...oh and no shame being a noob...we were all noobs once...
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 6
    AVS Kernels updated. :)
    5
    AVS Kernels released! :)
    5
    dropped from 100% to 78% in 24h its pretty impressive... :eek:

    bty, what is "NETWORK TUNING" :confused:

    From previous replied i found only enable the script by option 1 then 6 to save. what else I should do?

    I don't have SS4N1 in front of me, I will take you through some settings from my head alone, so please excuse me if some info may be off. You're a smart guy, you'll figure it.
    So; You've flashed the CAVS kernel and SS4N1. Reboot, start Terminal Emulator.
    Type

    su
    sscfg

    Look for the Load presets menu option. Go there, load a preset. I started with Moderate. Go back to main menu. Press 2 to display current settings, then press 1. It will show you the current preset. All features will have 1 if enabled. SS4N1 should have the 1 flag as well, meaning it's enabled.
    From there, I press Enter to go back to main menu. In main menu I press 4 to customize settings. Press 1 to Enable/Disable features. I disable the Dewonkifier and Network tuning.
    Press Enter and go back to the Customize settings page.
    I enter 2 to customize the AWAKE mode.
    Press 1 to customize the power governor. It will ask you for the governor you want when AWAKE, I enter 3 if I recall correctly, that's on-demand. Interactive is also very good, even more responsive but eats the battery faster. I go with On-demand, it's very good for me.
    It will then ask you for the Min-Max operating frequencies when the phone is AWAKE. I go with the stock, 128000 for min, 998400 for max.
    It will ask you for the Up-threshold, I enter 90 so the CPU will wait on the lower frequency until it's used 90% before ramping to a higher frequency. Good for battery and trust me, the phone is snappy.
    Press Enter and you will be back to customize the AWAKE mode. I choose the 2nd option, UV Min-Max when AWAKE. For me, I've noticed my phone would consume the battery faster if undervolted. So, I press 2 to configure the UV when AWAKE. I set Min @ 0, Max @ 0. When done, it will show you the tweaked voltage table.
    Press Enter and go back to the Customize settings page.
    Press 3 to customize the SLEEP mode.
    Choose 1 and change the SLEEP Power governor to Conservative.
    Min freq 128000
    Max freq 384000
    Up-threshold: 98
    I go back to configure the SLEEP mode, choose the 2nd option to change UV options, I again choose Min and Max 0.
    I go back to the main menu, press 5 to save settings to SD card using the 1 option.
    I go back to main menu and finally Apply the settings.
    Exit Terminal, the settings apply on the fly, but I reboot for good measure.
    Have fun!


    PS. I was using SetCPU before SS4N1, I now have SetCPU but it's not enabled (no set on boot ticked), no profiles defined. i do all the tweaking from SS4N1, I just monitor with SetCPU. Why use SetCPU when thanks to fine users here we can enjoy a great kernel and a great GUI to configure it? BTW, thanks ch33kybutt for SS4N1 and IR for the kernel!
    5
    I have the same questions, I just haven't searched thru the old posts yet.

    Noboost, cfs, wififast or advantages of AVS vs CAVS?

    NoBoost -> restored the volume levels of stock kernel
    CFS -> ignore since I only release CFS nowadays
    WiFiFast -> make WiFi stay awake while display is off; useful for WiFi calling app
    AVS -> voltage settings are set at known stable (majority) levels
    CAVS -> voltage settings are set same as undervolted SVS kernels (like CM) but can be altered using script or through terminal
    5
    Fixed kernels are up. :)