Android OS Forum banner

[KERNEL]CM10/CM9/AOKP Kernel v6.2.1 [8/16] - UV/OC/GPU-BLN-Governors

15974 Views 3 Replies 3 Participants Last post by  xcrazydx

This is a customized kernel built from SGH-I727 (aka Skyrocket) source code. This ROM has all the fixes from CyanogenMod & Team Chopsticks tree along with some other stuff.

It's very simple to install.
  1. Ensure you've already installed a working ROM
  2. Install Zip from CWM.
  3. Wipe both caches (just to be safe)
  4. Reboot

FSync Control - Courtesy of Ezekeel

FSync Control which can be used to disable the fsync system calls for single files and filesystems (echo 0 > /sys/class/misc/fsynccontrol/fsync_enabled). These fsync syscalls are used by kernel modules and user space programs to flush an I/O buffer (which is in RAM) to disk to make sure that this data is actually savely stored on the disk before executing the next step. Disabling fsync can result in data loss on a crash/freeze since the data is still in the I/O buffer and has not been saved to disk as it should be and can also lead to problems due to race conditions if two or more processes access the same file. On the other hand disabling fsync reduces the number of I/O operations which potentially could reduce the battery drain and also improve I/O performance.

Wheatley Governor - Courtesy of Ezekeel

Badass (default)
Badass removes all of this "fast peaking" to the max frequency. On a typical system the cpu won't go above 1080Mhz and therefore use less power. To trigger a frequency increase, the system must run a bit @ 1080MHz with high load, then the frequency is bumped to 1350MHz. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 2-5 seconds, depending on the load your system is experiencing).

You can tweak the Phase 2 (1080MHz) and Phase 3 (1350MHz) via sysfs (if you don't know, then just leave it alone).

NOTE: Due to it's nature, this is not a benchmark governor. It is meant as a governor that gives you a smooth experience while saving battery.

Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.

Created by kernel developer "Imoseyon," the InteractiveX governor is based heavily on the Interactive governor, enhanced with tuned timer parameters to better balance battery vs. performance. The InteractiveX governor's defining feature, however, is that it locks the CPU frequency to the user's lowest defined speed when the screen is off.

This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.

GPU Overclocking
GPU is stock clocked at [email protected] & [email protected] (default).

Example: To increase maximum GPU frequency in 3D mode to 320 MHz:
echo 320000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk

Example: To increase maximum GPU frequency in 2D mode to 266 MHz:
echo 266667000 > /sys/devices/platform/kgsl-2d0.0/kgsl/kgsl-2d0/max_gpuclk
echo 266667000 > /sys/devices/platform/kgsl-2d1.1/kgsl/kgsl-2d1/max_gpuclk

Available frequencies:
3D: 320000000, 300000000, 266667000, 228571000, 200000000, 177778000, 27000000
2D: 266667000, 228571000, 200000000

Kernel-based MPDecision
100% kernel-based multi-core decision! (should cpu1 be online or not?)
This replaces your /system/bin/mpdecision binary which is disabled by the CWM flashable.

Check /sys/kernel/msm_mpdecision/conf/ for the configuration.

startdelay = time until mpdecision starts doing it's magic (70000)
delay = time between checks (500)
pause = if something else plugs in the cpu, fall asleep for 10000
scroff_single_core = if the screen is off, don't plug in cpu1 (1)
nwns_threshold_up = runqueue threshold, if this is reached cpu1 will be hotplugged (35)
nwns_threshold_down = runqueue threshold, if this is reached cpu1 will be unplugged (5)
twts_threshold_up = time threshold, this amount of time must have passed (250)
twts_threshold_down = same as above (250)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
(all times are in ms)


Version 6.2.1 - <-- CM10 Alpha 2 and beyond
Version 6.2 - <-- CM10 Alpha 2 and beyond
Version 6.1 - <-- CM10 Alpha 2 and beyond (file description says CM9, but it really is CM10)
Version 6.0.3 - <-- CM9 and CM10 Alpha 1a only UPDATED with latest 6.2.1 for CM9
Version 5.4.5 - <-- CM9 only

Battery life problems?
Read this first...http://forum.xda-dev...d.php?t=1759541

Then go here to grab Better Battery Stats (BBS) ... http://forum.xda-dev...d.php?t=1179809

Mega thanks to...

Team Chopsticks
Cyanogenmod Team
...and the other many countless kernel devs that I've Kang'd from
See less See more
  • Like
Reactions: 1
1 - 1 of 4 Posts
any reason my buddy should be worried about installing this from TWRP?
1 - 1 of 4 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.