让小米4C的CPU核心根据负载不用的时候自动离线上线
转+小幅修改: http://www.miui.com/thread-3935476-1-1.html通过研究发现可以通过修改/system/etc/init.qcom.post_boot.sh实现。现在共享出来仅供大家研究。没有经过严格测试,具体有什么效果不清楚,有兴趣的可以试一下!!!
1. 两个大核不用的时候都离线
将文件中 第838行 echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
改为echo 0 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
839行改成70
840行改成30
841行,扫描时间,默认0.1秒改成1秒
echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
改为echo 1000 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
最尾巴加入ondemand调度器,可以更省电
#!/system/bin/sh
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "ondemand" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
echo "simple_ondemand" > /sys/devices/soc.0/fdb00000.qcom,kgsl-3d0/devfreq/fdb00000.qcom,kgsl-3d0/governor
重启后生效,但是休眠后就失效了,再重启一次又生效。可能还有程序在修改min_cpus这个文件的值。
再将文件中第858行和859行去掉,或者加#号注释,就是下面这两行
chown -h system /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
chown -h system /sys/devices/system/cpu/cpu4/core_ctl/max_cpus
这样休眠就不会被改回去了,暂时没发现什么问题。
2. 让4个小核不用的时候离线,至少保持1个核心在线(小核心费电少,但是性能低,四个1440全开的核心还不如一个1280的大核心效率,可以不用操作,下方共享的文件也没有修改)
在文件中837行后加上
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
echo 70 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
echo 30 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
echo 1000 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
重启后生效。
所修改的东西我猜测含义如下,不一定准确。
busy_up_thres : 核心离线的门限值,就是超过这个值就离线。
busy_down_thres :核心离线的门限制,低于这个值就离线。
offline_delay_ms:核心离线前的延迟时间,单位毫秒。
注:最新4月7.0的4C开发版,已经非常省电了,不需要这些操作。
提高性能可以改hispeed_freq参数
784行是小核心最大频率 1248000改成1440000
echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
786行小核心触发负载自动缓慢提示频率改成80
echo 65 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
799行大核心改成90触发高速hispeed_freq
echo 80 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
801行大核心最大频率 改成1824000
echo 1248000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
页:
[1]