RK3588 CPU性能优化
设置CPU负载采样时间
CPU负载的采样时间关系到CPU的变频和大小核调度的及时性,目前系统的默认配置是32ms,可以通过如下节点获取:
rk3588_s:/ # cat /proc/sys/kernel/sched_pelt_period32
目前的采用时间可以设置为32ms和8ms,在8ms的情况下cpu的负载变频和大小核调度会更及时,但是同时功耗也会对应的增加;
可以通过如下命令进行设置:
rk3588_s:/ # echo 8 > /proc/sys/kernel/sched_pelt_period
如果要在代码里面加修改可以按如下方式修改:
device/rockchip/rk3588$
diff --git a/init.rk3588.rc b/init.rk3588.rc
index dcac552..e3f0005 100644
--- a/init.rk3588.rc
+++ b/init.rk3588.rc
@@ -56,6 +56,9 @@ on boot
write /dev/cpuset/background/cpus 0-7
write /dev/cpuset/system-background/cpus 0-7
write /dev/cpuset/top-app/cpus 4-7
+
+ #cpu sampling time set to 8ms, default value is 32ms
+ write /proc/sys/kernel/sched_pelt_period 8
设置大小核切换的阈值
大小核切换的阈值需要修改kernel代码,具体修改如下:
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -117,7 +117,7 @@ int __weak arch_asym_cpu_priority(int cpu)
*
* (default: ~20%)
*/
-#define fits_capacity(cap, max) ((cap) * 1280 < (max) * 1024)
+#define fits_capacity(cap, max) ((cap) * 2048 < (max) * 1024)
注: 这个参数的值是1024/x,如1024/1280=0.8 余量20%,当负载阈值达到80%时就会把任务切到大核上面, 1024/2048=0.5 即当负载达到50%的时候小核上面的任务会切到大核上面
版权归原作者 loitawu 所有, 如有侵权,请联系我们删除。