Hi All,
I like to know what my CPU's/Cores are doing, and not only knowing, but controlling.
So i created this little deamon to control my cores and frequencies/governor. It waits for screen on/off events and then sets the Cores online/offline as to your config and then locks them in place so the system can't offline/online them as it wants. So you can have full duel core in screen on and force 1 core offline during sleep.
I would like to start by thanking and giving full props to the Virtuous team. They wrote the first daemon of this type and for making it open source. I got a lot of inspiration from their code. Here is my Github
link.
Features:
Full duel core and single core support, probably more, but i only have those devices to test
4 Profiles (Wake(Screen on)/Sleep(Screen off)/Charge/LowBattery)
Core online/offline with lock-in so system can't change it.
Here is my settings and also the default when you install.
Wake
Gov = ondemand
Min = 192000 Mhz
Max = 1512000 Mhz

(YIPPY, we have some new kernels)

Cores = 2
Sleep
Gov = conservative
Min = 192000 Mhz
Max = 648000 Mhz
Cores = 1 (only need 1 and other core gets off-lined)
Charge
Gov = ondemand
Min = 192000 Mhz
Max = 1188000 Mhz
Cores = 2
LowBattery
Gov = ondemand
Min = 192000 Mhz
Max = 1188000 Mhz
Cores = 1
Level = 15%
So what do you need to test/run.
* Custom recovery (Any should do, but i tested in 4Ext)
* Root access
* init.d support for autostart
* A little know-how.

* Android 4.0 (IceCreamSandwich) (Haven't tested on anything lower, but it was compile with ICS headers)
How to install.
Flash via recovery.
Change log.
RC1 (2012-06-21)
- Initial release.
RC2 (2012-06-27)
- Increased code efficiency.
- Debug stripped. (Profile change now happens in under 15ms)
- Ability to load config from sdcard (/mnt/sdcard/corecontrol/) with priority over system (/system/etc/corecontrol/)
- CLI arguments (-stop, -restart, -find, -version)
- Bug fix. (Profile change was to fast and cpu didn't have time to online. Only happened every 0.1%)
RC3 (2012-07-31)
- Added a wait for SDcard to be mounted to check for personal settings.
And how can you test if it is working? Well, find a cli app or log on with "adb shell" and execute the following commands.
"[I]/system/xbin/CoreControl -find" - Will return running daemon PID.
"
logcat | grep CoreControl" - Will see profiles changing and when the app start it will give configuration.
"
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_[mg]*" - Will show you the current online cpus and what they set to.
To change any of the default config. Just edit the files in
/system/etc/corecontrol/ or edit/create files in
/mnt/sdcard/corecontrol/ and restart the phone or daemon.
Will probably write a App to make the config easier to change, but i'm also open to anybody helping with this.