[Redmi Note 2 General] jajk:
For people running latest AICP and maybe Cyanogen based ROMs too but no guarantees there:

(Not for Noobs!!!)

Steps to fix battery / performance issues:

1. Unpack boot.img

2. Edit init.rc and remove or comment out the include init.hermes.power.rc line

3. Optional: Add this to the end of init.rc: (init.d support seems flakey without it)

#Add Init.d Support

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

class core

user root

group root

oneshot

4. Edit init.cm.rc and remove or comment out all the Configure IO scheduler lines at the end of the file.

5. Repack the boot.img and flash to phones boot partition via TWRP. No wipes required.

6. Using a root explorer, navigate to etc/init.d and open each and every file found there. You need to know what settings are already being forced by these scripts.

Note that 01sysctl is a mechanism to run the contents of etc/sysctl.conf file - familiarize yourself with its contents too.

7. Create your own init.d script and start with a base as follows:

#!/system/bin/sh

# Tweak CPU Governor

echo 1183000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq	# 1183000 default

echo 75 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load	# 99 default

echo 90 403000:70 806000:75 1183000:80 1326000:84 1469000:88 1625000:92 1781000:96 19500:99 > /sys/devices/system/cpu/cpufreq/interactive/target_loads	# 90 default

echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate	#20000 default

echo 10000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time	#20000 default

echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay	#20000 default

echo 10000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack	#20000 default

# Both the following lines are required to limit freq and target_loads modified to take into account the restricted range.

# echo 1781000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq	# 1950000 default

# echo 1781000 > /proc/cpufreq/cpufreq_limited_max_freq_by_user	# 0 default (not enabled)

# Tweak IO Scheduler

echo deadline > /sys/block/mmcblk0/queue/scheduler # cfq default. choices: cfq deadline noop

# echo 0 > /sys/block/mmcblk0/queue/iosched/slice_idle # only required if cfq or bfq chosen above

echo 256 > /sys/block/mmcblk0/queue/read_ahead_kb # 128 default. choose from 128, 256, 512, 1024, 2048

#Tweak VM

echo 300 > /proc/sys/vm/dirty_expire_centisecs	# 200 default. Do not exceed 500 (5 seconds)

echo 500 > /proc/sys/vm/dirty_writeback_centisecs	# 300 default. Do not exceed 500 (5 seconds)

#Tweak Entropy

echo 1024 > /proc/sys/kernel/random/read_wakeup_threshold	#64 default. choose from: 64, 128, 256, 512, 1024, 2048

echo 2048 > /proc/sys/kernel/random/write_wakeup_threshold	#128 default. choose from: 128, 256,512, 1024, 2048, 4096

###End of script

8. Now reboot and monitor your cpu freq using whatever cpu software you have handy. It is normal for the freq to jump each now and then with background activity but it should for the most part sit on 403MHz and definitely return back there after activity bursts. If it is wandering too much, set the go_high_speed value to 80 or 85 if needed. Going higher will introduce more lags. If you think you need to go higher, freeze, greenify, or delete some apps first - that is where the problem lies.

9. For the lazy, I have premade the modified boot.img for aicp_hermes_lp-10.0-UNOFFICIAL-20160128

https://drive.google.com/file/d/0BwdRTuyj12_ycm1pUHpBbkVmT0k/view?usp=sharing

Notes:

Deadline is only my choice of governor, go with it or set to the default cfq as you wish.

Do not try to enable touch boost in the Interactive governor settings - it is broken and not needed anyway.

perfservscntbl.txt settings do not work in AICP so don't bother trying.

As always, test it out for yourself, prove or disprove things for yourself.