[KERNEL][AOSP] Incredikernel (Chad+Tiny) - 11/30/2013

Search This thread

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
Current Release: 12/20/2012(JB)/10/03/2012(GB+ICS)
Important, Please read: There are now two kernel versions starting with 8/10/2012 release, one for GB+limited ICS(no HWA) support and another for the ICS branch with HWA. Changes will be loggged separately for each kernel type. If you see no changelogs specifically for that type, then there's no release made. For example, 8/10/12 for GB is a continuation of the 3/21 release with none of the post-3/21 kernel ICS changes made.
Update 9/21/12: As of 9/21/12, jellybean is officially supported with the JB specific kernels.


First of all, I started this thread to make commenting and tracking easier for the incredikernel releases following Chad's latest release (8/15/2011).

I also wanted to make a distinction between Chad's initial kernels and the ones I've updated since that release and this is one way to do it. Initially I didn't want to do that but now I regretted not splitting sooner.

If you want the changelog for anything prior to my first kernel please refer to:

Chad's Incredikernel thread

Changelog:

11/30/2013 JB 4.3
  • Android 4.3 support
  • synced with updates from Android 4.3 Evervolv kernel

04/25/2013 ICS Sense+JB 4.2
  • dynamic fsync control
  • WiFi driver updates
  • Interactive governor updates - see Tinykernel
  • Entropy Tweaks
  • Netfilter updates
  • New sysfs location for fast charge for broader app compatibility - still compatible with latest incredicontrol
  • FUSE filesystem support

12/20/2012 JB 4.2 ONLY
  • add back governors that were removed in 12/15

12/15/2012 JB 4.2 ONLY
  • enabled UHID support
  • updated msm_fb for 4.2

12/11/2012 JB ONLY
  • cpufreq: enable overclocking of 1.15Ghz and 1.19Ghz
  • numerous interactive and ondemand governor tweaks
  • cpufreq: send uevent when governor changes
  • ondemand: boost pulse for JB's powerHAL

10/11/2012 JB ONLY
  • defconfig: several config changes to fix data usage not working

10/06/2012 JB ONLY
  • defconfig: enable conservative governor by request

10/03/2012 ICS+JB+GB
  • defconfig: remove rarely used governors and set max frequency to preventing booting higher than 998mhz
  • lower default hispeed_freq to 614Mhz
  • cpufreq: interactive: always limit initial speed bump to hispeed_freq

09/21/2012 ICS+JB+GB
  • ALL: New Interactive governor
  • ALL: Built with GCC 4.6 toolchain from Google
  • GB: interactive governor tweaked for battery
  • ICS+JB: interactive governor tweaked for butter
  • JB: genlock patched for JB support
  • JB: new wifi driver for compatibility with JB ROMs

08/11/2012 ICS+GB
  • KSM wasn't enabled as it should have been in the last build - fixed that - also nothing needs to be done to enable it on GB as it's on by default

08/10/2012 ICS ONLY
  • fixed data usage features for ICS
  • added mamarley's fastcharge USB patch to enable fastcharge without needing to unplug the charger
  • enabled KSM (Kernel Samepage Merging) - still need to enable in CM settings

08/10/2012 ICS+GB
  • added mamarley's fastcharge USB patch to enable fastcharge without needing to unplug the charger

07/07/2012 ICS ONLY
  • Merged in multiple driver updates to support HWA (chad0989)
  • Updated adreno kernel drivers to latest
  • added xtqta_guid - for ICS' data usage feature, also seems to have resolved stability issues
  • Added lazy CPU governor
  • Added back intellidemand

03/21/2012 ICS+GB
  • Added lazy CPU governor

02/26/2012 ICS+GB
  • Smartassv2 default governor for sure - doesn't override ramdisk settings though
  • new governor lagfree - balance between ondemand and interactive
  • new I/O scheduler SIO
  • tweaked deadline for better performance
  • removed CFQ/BFQ schedulers and smartass, conservative, and interactive govenors (still have interactiveX and smartassv2)

01/03/2012 ICS+GB
  • Tweak intellidemand and interactiveX governors for battery life
  • Add ZRAM and swap support and add script to toggle ZRAM - see bottom of OP for more info
  • SmartassV2 default governor again

12/26/2011 ICS+GB
  • Added faux123's intellidemand governor (thanks faux123!)
  • Added imoseyon's interactiveX governor (thanks imoseyon!)
  • Works on GB and ICS currently
  • interactiveX may not play nicely with ICS so intellidemand is default
  • Conservative is disabled, let me know if you need it back

12/08/2011 (Chad) ICS+GB
  • Added ICS support (limited)

11/27/2011 GB
  • Use ondemand, performance, and conservative governors from the Android Linux 3.0 kernel
  • Set minimum voltage back to 800 as the voltages will not go below 800 anyway. Anything lower is placebo effect. This is a hardware limitation.

11/14/2011 GB
  • Update OJ driver
  • BT fix for newer CM nightlies
  • WIFI module updates
  • Update and re-add BFQ scheduler as well as disable deadline
  • Ondemand is back
  • Fixes/Tweaks to ondemand and interactive

10/08/2011 GB
  • Adjusted smartassV2 parameters for 1GHz processor (originally for 500Mhz device)

10/01/2011 GB
  • Set smartassv2 to default governor

09/30/2011 GB
  • Added SmartassV2 governor

Current CPU governors as of the latest release:
  • SmartassV2
  • Ondemand
  • Interactive
  • Lagfree
  • Lazy

Technical doc on CPU governors (most of the ones in this kernel anyway)
https://raw.github.com/tiny4579/android_kernel_common/android-2.6.38-incredikernel/Documentation/cpu-freq/governors.txt

Update: 11/30/13 - removed link to incredikernel.com as the site has no content - fully on goo.im now

http://goo.im/devs/tiny4579/inc/kernels

Kernel Source

https://github.com/tiny4579/android_kernel_common

Here are a couple notes if you want to build this kernel from source:

Jellybean kernel branch is android-2.6.38-incredikernel-jb.
ICS kernel branch is android-2.6.38-incredikernel-ics.
Gingerbread kernel branch is android-2.6.38-incredikernel.
The config for the kernel is in arch/arm/configs/incrediblec-incredikernel_defconfig. If you want to switch branches I recommend doing a make incrediblec-incredikernel_defconfig after checking out that branch.
I use the GCC 4.4.3 toolchain for this kernel due to GCC 4.6 causing build issues.
 
Last edited:

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
Frequently Asked Questions

Some key differences between smartass and smartassv2 so users can decide which they prefer and learn a bit more about the differences:

Smartass
1. Screen off profile built in maxed at 384mhz.
2. Wakeup frequency is 998mhz.
3. Min screen on is 245mhz.
4. Improved by Chad to run better on our devices.
5. Purely load based, no ideal value.

Smartassv2
1. This is the same exact governor in Erasmux's Nexus One kernel (github.com/erasmux/n1-kernel)
2. Ideal wake frequency is 768 (also default that can be changed).
3. Screen on min is actually 128mhz).
4. No screen off profile.
5. Ideal sleep frequency 245mhz.
6. Improved upon from erasmux's version, not Chad's.

Basically the smartassv2 ideal wake frequency allows the phone to favor a certain speed to attempt to save battery life. It can still go above ideal wake and below ideal sleep so there's no caps on max and min while awake or sleep.

Some tips/info on various governors:

Smartass/smartassv2/interactive:
Use 128 min so the governor can scale as it needs to. Max speed I'd recommend at least 768Mhz.

Ondemand:
Try 128 min and if it lags use 245 min. Max speed I'd recommend at least 768Mhz.

Performance:
Only recommended for benchmarks but speed will always run at max.

InteractiveX:
Same as interactive except it has an auto screen off set to the min. Ideal with 245 min in setcpu but try 128 for battery life but it you have wake lag then set to 245.

Intellidemand:
Based on ondemand with a built in screen off. Any speed settings should be fine.

Interactive:
Some new features with this one. Starting with 9/21/12 release I am using the interactive kernel from Google which features a new kernel option called input_boost.

It is off by default but can be enabled by writing a 1 to /sys/devices/system/cpu/cpufreq/interactive/input_boost. Also there is another parameter for interactive called hispeed_freq in the same location. The hispeed_freq is where the governor jumps to first. Hispeed_freq by default in 10/3/12 is 614400 to help save battery. In the older interactive governor there was a maxspeed freq which meant the governor was a bit jumpier to the max speed. This should be a good blend of performance and battery.

Lagfree:
Based on ondemand but with a softer CPU scaling which should help with battery life. It also seems to be very responsive (starting with 2/26)

Lazy:
Based on ondemand as well (Ezekeel is the developer of this governor). I cannot explain this too well but its apparent behavior seems to be to switch between low and high frequencies pretty evenly.
A note from Ezekeel on this governor:
"Thus I took the ondemand governor and implemented an additional parameter 'min_timeinstate' defining a minimum time the CPU will stay in a certain frequency state before it will be allowed to switch frequencies again. This way one can have a fine grained polling by setting the sampling_rate to a low value without running into problems with these fast frequency changes.

I did some extensive testing with a sampling_rate of 10000, min_timeinstate of 40000 and up_threshold of 90 and FLAC, mp3 and video playback all seem to work flawlessly. So it seems the root of the problem was indeed that the CPU does not handle fast frequency changes well.

I tested several apps and games and so far I have not found anything that this governor cannot handle. Thus I dare to say that it seems to be the superior choice over ondemand."


ZRAM, what is it and how to I add it? (starting officially with 12/31/11)
If you are familiar with swap space in linux or virtual memory in Windows it is a similar concept. Except instead of using the hard drive as swap space it compresses swap space in RAM for faster access times than conventional swap. This will also wear out our storage memory less than typical swapping.

Enable ZRAM is simple thanks to a script built by imoseyon which is provided in the kernel zip file. To enable, use adb shell or download a terminal app and run zram enable. This will persist across reboots (if init.d is setup in your ROM) so if you don't want it anymore run zram disable and it will remove the bootscript and deactivate it.

You need to have root privileges to enable/disable zram. Run the su command in terminal emulator to request root.
 
Last edited:

OMG_VTEC

Senior Member
Apr 21, 2011
528
38
I was wondering when lazy was gonna make it's way to aosp...

Sent from my ADR6300 using xda premium
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
I was wondering when lazy was gonna make it's way to aosp...

Sent from my ADR6300 using xda premium

The name of the new governor says it all....













You just answered your own question. I took my own sweet time releasing it. It was built like 2 weeks ago. I was being lazy.
 

Pons

Senior Member
Sep 2, 2010
3,932
2,067
To help out users (and document the probable future deviation), how about adding a tag to each kernel stating whether it works with froyo (which I believe is none), GB, ICS, or a multiple (which is only the last couple or so, I think).

Great work, by the way.
 
Last edited:

azradiohead

Member
Jun 6, 2010
33
7
I'm running my CPU at 128/806 Mhz with Lazy and it's been nice and smooth all day. Battery life has been as good or better than SA2 for me.

It also seemed to drop my ping time and increase the throughput in SpeedTest. I was getting really discouraged with ICS and >400ms ping times but I'm attributing the Lazy governor with right around 100ms ping and smoother data rates. When I switch back to the SA2 governor that I've been running for months data gets choppy again. The system itself seems smooth enough with SA2 but data has been very choppy.

Thank you to all you great developers for all your time, effort, and hard work. We really do appreciate it. :)
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
I'm running my CPU at 128/806 Mhz with Lazy and it's been nice and smooth all day. Battery life has been as good or better than SA2 for me.

It also seemed to drop my ping time and increase the throughput in SpeedTest. I was getting really discouraged with ICS and >400ms ping times but I'm attributing the Lazy governor with right around 100ms ping and smoother data rates. When I switch back to the SA2 governor that I've been running for months data gets choppy again. The system itself seems smooth enough with SA2 but data has been very choppy.

Thank you to all you great developers for all your time, effort, and hard work. We really do appreciate it. :)

The ROM/kernel/governor have no impact on data signal or speed so what you're seeing is coincidental. Network speed varies on so many factors outside of the control of the ROM or kernel. I'm glad to hear you like the new kernel and the lazy governor. I'm a fan of the dev of the lazy governor's work and run his kernel on my nexus.

My concern is that others will assume it will improve network performance and be disappointed when it doesn't.

Thank you for your compliments!

I just want to make sure I clarified this matter.
 
  • Like
Reactions: Hero

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
Thanks for the thread tiny, I was wondering what the benefits of the lazy governor were

I was looking around for something good that would make sense but I couldn't find anything so far.

Basically I added this governor on a whim. So far it seems to like lower frequencies even more than smartassv2 without too much sacrifice on speed. It might have better battery life. It seems smooth on Nil's Business Sense 3.5 though.

Interesting post here on smartassv2 from the developer of the lazy governor:

User:
and smartassV2 too but let him fix find the cause of the reboots before

Dev:
I will not integrate any new stuff until I have the cause for reboot problems tracked down. I will look into lulzactive, but I definitely will not include smartass since it is an inefficient governor.

Not sure why he said it was inefficient but could see no post about it.

Needless to say, I like lazy and lagfree so far. Give lazy and lagfree a try for a week and see what you think.
 
  • Like
Reactions: chocolate8175

RebelShadow

Senior Member
Oct 12, 2006
624
90
Sulphur, LA.
I'm running my CPU at 128/806 Mhz with Lazy and it's been nice and smooth all day. Battery life has been as good or better than SA2 for me.

It also seemed to drop my ping time and increase the throughput in SpeedTest. I was getting really discouraged with ICS and >400ms ping times but I'm attributing the Lazy governor with right around 100ms ping and smoother data rates. When I switch back to the SA2 governor that I've been running for months data gets choppy again. The system itself seems smooth enough with SA2 but data has been very choppy.

Thank you to all you great developers for all your time, effort, and hard work. We really do appreciate it. :)

may be placibo effect but I have noticed this too and confirmed with speedtest.

Sent from my incredible incredible.
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
may be placibo effect but I have noticed this too and confirmed with speedtest.

Sent from my incredible incredible.

How does it fare with ondemand or lagfree? I still think its placebo. I can't test on my phone as I don't have data on the incredible.

Sent from my Galaxy Nexus using Tapatalk
 

reeseman04

Member
Feb 16, 2012
37
4
Running GB and just installed the new Incredikernel, I saw no appreciable difference with data usage on Lazy, Lagfree, SAV2, Ondemand. Depending on your wireless signal, just moving your body by even a few inches could have an impact on data speeds (high frequency shadowing of transmission waves). The ping, might have some more sway by the CPU of the device if the program doesn't get as much processor in when communicating with the server, but not in the order of milliseconds (would be my though).
 

jlokos

Senior Member
May 27, 2011
2,715
820
Willamette Valley
Google Pixel 8 Pro
I was looking around for something good that would make sense but I couldn't find anything so far.

Basically I added this governor on a whim. So far it seems to like lower frequencies even more than smartassv2 without too much sacrifice on speed. It might have better battery life. It seems smooth on Nil's Business Sense 3.5 though.

Interesting post here on smartassv2 from the developer of the lazy governor:

User:
and smartassV2 too but let him fix find the cause of the reboots before

Dev:
I will not integrate any new stuff until I have the cause for reboot problems tracked down. I will look into lulzactive, but I definitely will not include smartass since it is an inefficient governor.

Not sure why he said it was inefficient but could see no post about it.

Needless to say, I like lazy and lagfree so far. Give lazy and lagfree a try for a week and see what you think.

I'm using your latest GB kernel with the lazy governor on Warm TwoPointThree 3.5 rom. It is very smooth with very good battery life (undervolted).
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
I'm using your latest GB kernel with the lazy governor on Warm TwoPointThree 3.5 rom. It is very smooth with very good battery life (undervolted).

Better than SAV2? I can't really comment myself but I like it so far.

Also, try to keep Sense kernel talk in the sense thread and aosp kernel talk in the AOSP thread. It makes tracking easier. But I also brought up the comment in this thread so it makes sense why you posted here.
 

jlokos

Senior Member
May 27, 2011
2,715
820
Willamette Valley
Google Pixel 8 Pro
Better than SAV2? I can't really comment myself but I like it so far.

Also, try to keep Sense kernel talk in the sense thread and aosp kernel talk in the AOSP thread. It makes tracking easier. But I also brought up the comment in this thread so it makes sense why you posted here.

I have used both the GB and AOSP versions of the lazy governor. The GB version appears to make the Sense 3.5 rom smoother. As far as battery life, I haven't been able to tell if its better than SA2 since I have a much longer history with SA2. In any event, thanks for adding this governor to both versions (as I switch between the new ICS roms and Sense 3.5); it's another great choice for us to experiment with.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 30
    Current Release: 12/20/2012(JB)/10/03/2012(GB+ICS)
    Important, Please read: There are now two kernel versions starting with 8/10/2012 release, one for GB+limited ICS(no HWA) support and another for the ICS branch with HWA. Changes will be loggged separately for each kernel type. If you see no changelogs specifically for that type, then there's no release made. For example, 8/10/12 for GB is a continuation of the 3/21 release with none of the post-3/21 kernel ICS changes made.
    Update 9/21/12: As of 9/21/12, jellybean is officially supported with the JB specific kernels.


    First of all, I started this thread to make commenting and tracking easier for the incredikernel releases following Chad's latest release (8/15/2011).

    I also wanted to make a distinction between Chad's initial kernels and the ones I've updated since that release and this is one way to do it. Initially I didn't want to do that but now I regretted not splitting sooner.

    If you want the changelog for anything prior to my first kernel please refer to:

    Chad's Incredikernel thread

    Changelog:

    11/30/2013 JB 4.3
    • Android 4.3 support
    • synced with updates from Android 4.3 Evervolv kernel

    04/25/2013 ICS Sense+JB 4.2
    • dynamic fsync control
    • WiFi driver updates
    • Interactive governor updates - see Tinykernel
    • Entropy Tweaks
    • Netfilter updates
    • New sysfs location for fast charge for broader app compatibility - still compatible with latest incredicontrol
    • FUSE filesystem support

    12/20/2012 JB 4.2 ONLY
    • add back governors that were removed in 12/15

    12/15/2012 JB 4.2 ONLY
    • enabled UHID support
    • updated msm_fb for 4.2

    12/11/2012 JB ONLY
    • cpufreq: enable overclocking of 1.15Ghz and 1.19Ghz
    • numerous interactive and ondemand governor tweaks
    • cpufreq: send uevent when governor changes
    • ondemand: boost pulse for JB's powerHAL

    10/11/2012 JB ONLY
    • defconfig: several config changes to fix data usage not working

    10/06/2012 JB ONLY
    • defconfig: enable conservative governor by request

    10/03/2012 ICS+JB+GB
    • defconfig: remove rarely used governors and set max frequency to preventing booting higher than 998mhz
    • lower default hispeed_freq to 614Mhz
    • cpufreq: interactive: always limit initial speed bump to hispeed_freq

    09/21/2012 ICS+JB+GB
    • ALL: New Interactive governor
    • ALL: Built with GCC 4.6 toolchain from Google
    • GB: interactive governor tweaked for battery
    • ICS+JB: interactive governor tweaked for butter
    • JB: genlock patched for JB support
    • JB: new wifi driver for compatibility with JB ROMs

    08/11/2012 ICS+GB
    • KSM wasn't enabled as it should have been in the last build - fixed that - also nothing needs to be done to enable it on GB as it's on by default

    08/10/2012 ICS ONLY
    • fixed data usage features for ICS
    • added mamarley's fastcharge USB patch to enable fastcharge without needing to unplug the charger
    • enabled KSM (Kernel Samepage Merging) - still need to enable in CM settings

    08/10/2012 ICS+GB
    • added mamarley's fastcharge USB patch to enable fastcharge without needing to unplug the charger

    07/07/2012 ICS ONLY
    • Merged in multiple driver updates to support HWA (chad0989)
    • Updated adreno kernel drivers to latest
    • added xtqta_guid - for ICS' data usage feature, also seems to have resolved stability issues
    • Added lazy CPU governor
    • Added back intellidemand

    03/21/2012 ICS+GB
    • Added lazy CPU governor

    02/26/2012 ICS+GB
    • Smartassv2 default governor for sure - doesn't override ramdisk settings though
    • new governor lagfree - balance between ondemand and interactive
    • new I/O scheduler SIO
    • tweaked deadline for better performance
    • removed CFQ/BFQ schedulers and smartass, conservative, and interactive govenors (still have interactiveX and smartassv2)

    01/03/2012 ICS+GB
    • Tweak intellidemand and interactiveX governors for battery life
    • Add ZRAM and swap support and add script to toggle ZRAM - see bottom of OP for more info
    • SmartassV2 default governor again

    12/26/2011 ICS+GB
    • Added faux123's intellidemand governor (thanks faux123!)
    • Added imoseyon's interactiveX governor (thanks imoseyon!)
    • Works on GB and ICS currently
    • interactiveX may not play nicely with ICS so intellidemand is default
    • Conservative is disabled, let me know if you need it back

    12/08/2011 (Chad) ICS+GB
    • Added ICS support (limited)

    11/27/2011 GB
    • Use ondemand, performance, and conservative governors from the Android Linux 3.0 kernel
    • Set minimum voltage back to 800 as the voltages will not go below 800 anyway. Anything lower is placebo effect. This is a hardware limitation.

    11/14/2011 GB
    • Update OJ driver
    • BT fix for newer CM nightlies
    • WIFI module updates
    • Update and re-add BFQ scheduler as well as disable deadline
    • Ondemand is back
    • Fixes/Tweaks to ondemand and interactive

    10/08/2011 GB
    • Adjusted smartassV2 parameters for 1GHz processor (originally for 500Mhz device)

    10/01/2011 GB
    • Set smartassv2 to default governor

    09/30/2011 GB
    • Added SmartassV2 governor

    Current CPU governors as of the latest release:
    • SmartassV2
    • Ondemand
    • Interactive
    • Lagfree
    • Lazy

    Technical doc on CPU governors (most of the ones in this kernel anyway)
    https://raw.github.com/tiny4579/android_kernel_common/android-2.6.38-incredikernel/Documentation/cpu-freq/governors.txt

    Update: 11/30/13 - removed link to incredikernel.com as the site has no content - fully on goo.im now

    http://goo.im/devs/tiny4579/inc/kernels

    Kernel Source

    https://github.com/tiny4579/android_kernel_common

    Here are a couple notes if you want to build this kernel from source:

    Jellybean kernel branch is android-2.6.38-incredikernel-jb.
    ICS kernel branch is android-2.6.38-incredikernel-ics.
    Gingerbread kernel branch is android-2.6.38-incredikernel.
    The config for the kernel is in arch/arm/configs/incrediblec-incredikernel_defconfig. If you want to switch branches I recommend doing a make incrediblec-incredikernel_defconfig after checking out that branch.
    I use the GCC 4.4.3 toolchain for this kernel due to GCC 4.6 causing build issues.
    11
    Without further ado, I present for your testing pleasure....

    Incredikernel-ICS-HWA-Beta2

    Features adreno/kgsl updates courtesy of drewis from the evervolv team!
    6
    New kernels up! GB kernel will be up shortly or tomorrow with the 10/3/12 build date and same changes. Test with lulzactive was broken so I scrapped it for what I think are better governors.

    Edit: Just noticed I accidentally removed smartassv2 from the kernel config for jellybean. If anyone notices it missing please let me know and I'll add it back tomorrow, otherwise it's just a git blunder.

    Edit 2: GB kernel up now.
    5
    Frequently Asked Questions

    Some key differences between smartass and smartassv2 so users can decide which they prefer and learn a bit more about the differences:

    Smartass
    1. Screen off profile built in maxed at 384mhz.
    2. Wakeup frequency is 998mhz.
    3. Min screen on is 245mhz.
    4. Improved by Chad to run better on our devices.
    5. Purely load based, no ideal value.

    Smartassv2
    1. This is the same exact governor in Erasmux's Nexus One kernel (github.com/erasmux/n1-kernel)
    2. Ideal wake frequency is 768 (also default that can be changed).
    3. Screen on min is actually 128mhz).
    4. No screen off profile.
    5. Ideal sleep frequency 245mhz.
    6. Improved upon from erasmux's version, not Chad's.

    Basically the smartassv2 ideal wake frequency allows the phone to favor a certain speed to attempt to save battery life. It can still go above ideal wake and below ideal sleep so there's no caps on max and min while awake or sleep.

    Some tips/info on various governors:

    Smartass/smartassv2/interactive:
    Use 128 min so the governor can scale as it needs to. Max speed I'd recommend at least 768Mhz.

    Ondemand:
    Try 128 min and if it lags use 245 min. Max speed I'd recommend at least 768Mhz.

    Performance:
    Only recommended for benchmarks but speed will always run at max.

    InteractiveX:
    Same as interactive except it has an auto screen off set to the min. Ideal with 245 min in setcpu but try 128 for battery life but it you have wake lag then set to 245.

    Intellidemand:
    Based on ondemand with a built in screen off. Any speed settings should be fine.

    Interactive:
    Some new features with this one. Starting with 9/21/12 release I am using the interactive kernel from Google which features a new kernel option called input_boost.

    It is off by default but can be enabled by writing a 1 to /sys/devices/system/cpu/cpufreq/interactive/input_boost. Also there is another parameter for interactive called hispeed_freq in the same location. The hispeed_freq is where the governor jumps to first. Hispeed_freq by default in 10/3/12 is 614400 to help save battery. In the older interactive governor there was a maxspeed freq which meant the governor was a bit jumpier to the max speed. This should be a good blend of performance and battery.

    Lagfree:
    Based on ondemand but with a softer CPU scaling which should help with battery life. It also seems to be very responsive (starting with 2/26)

    Lazy:
    Based on ondemand as well (Ezekeel is the developer of this governor). I cannot explain this too well but its apparent behavior seems to be to switch between low and high frequencies pretty evenly.
    A note from Ezekeel on this governor:
    "Thus I took the ondemand governor and implemented an additional parameter 'min_timeinstate' defining a minimum time the CPU will stay in a certain frequency state before it will be allowed to switch frequencies again. This way one can have a fine grained polling by setting the sampling_rate to a low value without running into problems with these fast frequency changes.

    I did some extensive testing with a sampling_rate of 10000, min_timeinstate of 40000 and up_threshold of 90 and FLAC, mp3 and video playback all seem to work flawlessly. So it seems the root of the problem was indeed that the CPU does not handle fast frequency changes well.

    I tested several apps and games and so far I have not found anything that this governor cannot handle. Thus I dare to say that it seems to be the superior choice over ondemand."


    ZRAM, what is it and how to I add it? (starting officially with 12/31/11)
    If you are familiar with swap space in linux or virtual memory in Windows it is a similar concept. Except instead of using the hard drive as swap space it compresses swap space in RAM for faster access times than conventional swap. This will also wear out our storage memory less than typical swapping.

    Enable ZRAM is simple thanks to a script built by imoseyon which is provided in the kernel zip file. To enable, use adb shell or download a terminal app and run zram enable. This will persist across reboots (if init.d is setup in your ROM) so if you don't want it anymore run zram disable and it will remove the bootscript and deactivate it.

    You need to have root privileges to enable/disable zram. Run the su command in terminal emulator to request root.
    5
    Hopefully this kernel build fixes the freezing many were experiencing. I cannot recreate the freeze problem on a ROM I was testing whereas I could fairly easily on an earlier build.

    https://dl.dropbox.com/u/31805083/incredikernel-ics-hwa-rc1.zip