先尝试 adb 上进行调频优先级绑定验证
查看进程在哪个 cpu
ps -o pid,psr,comm -p `pidof -x 'kswapd0'`
ps -o pid,psr,comm -p `pidof -x 'kcompactd0'`
while true; do ps -o pid,psr,comm -p `pidof -x 'kswapd0'`; sleep 0.1;done;
打开sepolicy
setenforce 0
设置并查看进程 mask
taskset -ap 3f `pidof -x kswapd0`
查看进程 maks
taskset -p `pidof -x kswapd0`
taskset -p `pidof -x kcompactd0`
sf 绑大核
sf 移到前台进程组
echo `pidof -x 'surfaceflinger'` >/dev/cpuset/foreground/tasks;cat /dev/cpuset/foreground/tasks|grep -i `pidof -x 'surfaceflinger'`
绑 67大核
taskset -ap c0 `pidof -x surfaceflinger`
echo 0-5 > dev/cpuset/foreground/cpus
- 查看进程中线程的 pid ---> ps -p 进程 -T |grep -i "render"
- 修改线程优先级为实时调度 ---> chrt -p 1234 ---> chrt -p -f 1523 10
再考虑如何代码实现
- framework 层一般是通过 setpriority 相关接口实现
- 进一步是在 sched.cpp 里面实现