小樱 发表于 2017/2/18 16:15

让小米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开发版,已经非常省电了,不需要这些操作。

小樱 发表于 2017/2/21 17:50

提高性能可以改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]
查看完整版本: 让小米4C的CPU核心根据负载不用的时候自动离线上线