[Redmi Note 2 General] jajk:
I have had my Note 2 for a week now and have tamed the major performance / battery issues by doing the following:

I assume you have root and custom recovery as a minimum.

1. Edit /etc/perfservscntbl.txt

Some of the setting choices available - define what you want - if the lines are not there, add them to control the feature.

Edit: Only SCN_APP_TOUCH works in MIUI but others work in other O.S and phones so I will leave as a reference.

CMD_SET_CPU_CORE, SCN_APP_TOUCH, 1

CMD_SET_CPU_FREQ, SCN_APP_TOUCH, 1469000

CMD_SET_CPU_FREQ, SCN_APP_SWITCH, 1469000

CMD_SET_CPU_CORE, SCN_APP_SWITCH, 2

CMD_SET_CPU_FREQ, SCN_APP_LAUNCH, 1469000

CMD_SET_CPU_CORE, SCN_APP_LAUNCH, 3

CMD_SET_CPU_FREQ, SCN_SW_FRAME_UPDATE, 1469000

CMD_SET_CPU_CORE, SCN_SW_FRAME_UPDATE, 2

If you consider the core frequency vs voltage as found in /proc/cpufreq/cpufreq_oppidx.txt (don't go editing this - the values are held somewhere else), it is fairly economical on battery to run up to 1469MHz.

Dropping to less cores but running at a relatively high speed works for me. Experiment what is best for you - reboot required after each edit.

OP(1950000, 109375),

OP(1781000, 105000),

OP(1625000, 101250),

OP(1469000, 96875),

OP(1326000, 93750),

OP(1183000, 90000),

OP(806000, 90000),

OP(403000, 90000),

2. Init.d tweak to fix interactive governor not scaling back to minimum frequency on light loads. This is a big stuff up that affects many MTK phones.

Seems like the load value is not a percentage as expected - same fix applies to many other MTK67xx phones definitely works on MT6753

I have not quite figured what the scale is but there are some numbers it does not like - the min frequency will sit at the hispeed frequency if you get it wrong.

Could be the scale is 0 to 255 or 0 to 512 or maybe even 0 to 1024???

It helps to temporarily drop the frequencies in step 1 all to 403000 so you can actually see how interactive is scaling above this.

You must first have init.d support!!!

Create a file named 01init and put it in /etc/init.d folder with rw-r-r permissions. Copy the following text:

#!/system/bin/sh

echo 1469000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq

echo 220 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load

echo 240 > /sys/devices/system/cpu/cpufreq/interactive/target_loads

#end

Edit: Found the better compromise is to increase the timer_rate setting of Interactive Governor thereby smoothing load spikes that give unsettled operation with stock setting. Then more normal load percentages can be used.

To minimize battery usage, the ramp up and down speeds along with the freq are increased over stock so the cpu kicks in, gets the job done and parks again in the shortest time.

#!/system/bin/sh

echo 1469000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq

echo 95 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load

echo 95 1950000:99 > /sys/devices/system/cpu/cpufreq/interactive/target_loads

echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate

echo 10000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time

echo 10000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay

echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack

To get init.d support I used AndroidMasterChef to unpack the boot.img, edit init.rc to include the following, then repack and flash the new boot.img.

Must have busybox installed - check /system/xbin/busybox actually exists.

# Init.d support

service run-parts /system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d

class main

user root

group shell

oneshot

#end

I am running AOSP ver 1.50 by vova.vafin which is becoming quite a clean and stable build - ver 1.52 is just out I notice.