Android O 绑定SurfaceFlinger到大核

Android O 绑定SurfaceFlinger到大核

目前的平台是big.LITTLE 架构,遇到一个卡顿问题,怀疑和小核上中断过于频繁有关,所以想把SF绑定到大核看看

首先top获取SurfaceFlinger的pid


707 system -2 -20 98M 24M 6.8M S 17.0 0.4 541:00.94 surfaceflinger

通过taskset 绑定
adb shell
$ taskset -p f0 707  //f0 是掩码 11110000,大核4-7都可以运行

但是会出错

pid 707's current affinity mask: f
taskset: failed to set 707's affinity: Invalid argument

也就是SF目前的affinity mask是f,只能运行在小核的意思,肯定是被限制了,确认cpuset信息

SurfaceFlinger的cpuset
首先找到该的cpuset分组
$ cat /proc/707/cpuset
/system-background   //属于system-background分组
$ cd /dev/cpuset/system-background/
查看CPU限制情况
$ cat /dev/cpuset/system-background/cpus
0-3 //限制在小核
$ /dev/cpuset/system-background/tasks 也能看到707进程
解决cgroup限制问题
因为forground 的cpus是0-7,所以可以把sf从system-background迁到forground分组
$ echo 707 > /dev/cpuset/foreground/tasks
成功绑定到大核
$ taskset -p f0 707
pid 707's current affinity mask: ff
pid 707's new affinity mask: f0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值