当前位置: 首页 > news >正文

android核绑定cpuset配置与检测进程所在核cpuset方法

一、开机阶段

开机有如下阶段。抛开开机动画需要的audio、surfaceflinger等进程,大部分android程序是在/data分区加载完整以后开始加载。所以cpuset的配置可以在 post-fs-data之后。注意,init.rc的不同阶段脚本都可能覆盖前面配置的cpuset。配置好检查与预期不一致,则要配置被重置了。

1) early-init
 
a) wait_for_coldboot_done
 
b) property_init
 
c) keychord_int
 
d) console_init
 
e) set_init_properties
 
2) init
 
3) early-fs
 
4) fs
 
5) post-fs
 
6) post-fs-data
 
f) property_service_init
 
g) signal_init
 
h) check_startup
 
7) early-boot
 
8) boot
 
9) service
 

二、配置cpuset

本例策略如下:
开机阶段:
write /dev/cpuset/top-app/cpus 0-5
write /dev/cpuset/foreground/cpus 0-5
write /dev/cpuset/system-background/cpus 0-5
write /dev/cpuset/background/cpus 4-5

开机完成后:
write /dev/cpuset/top-app/cpus 0-3
write /dev/cpuset/foreground/cpus 0-3
write /dev/cpuset/system-background/cpus 3-5

配置方法:

修改init.rc

on early-bootwrite /dev/cpuset/top-app/cpus 0-5write /dev/cpuset/foreground/cpus 0-5write /dev/cpuset/foreground/boost/cpus 0-5write /dev/cpuset/system-background/cpus 0-5write /dev/cpuset/background/cpus 4-5

....

on property:sys.boot_completed=1write /proc/sys/kernel/printk 4# init.vendor.rc can override below at on property:sys.boot_completed if neededwrite /dev/cpuset/top-app/cpus 0-3write /dev/cpuset/foreground/cpus 0-3write /dev/cpuset/system-background/cpus 3-5

三、配置特定进程的cpuset

# We want all cores for cameramkdir /dev/cpuset/camera-daemonwrite /dev/cpuset/camera-daemon/cpus 0-5write /dev/cpuset/camera-daemon/mems 0chown cameraserver cameraserver /dev/cpuset/camera-daemonchown cameraserver cameraserver /dev/cpuset/camera-daemon/taskschmod 0660 /dev/cpuset/camera-daemon/tasks

四、验证方法:

在adb shell里面:

#cd /dev/cpuset/top-app
/dev/cpuset/top-app # ps -A -p `cat tasks`

可以看到top-app下活跃的进程

USER           PID  PPID     VSZ    RSS WCHAN            ADDR S NAME
u0_a53        2217   378 4546160 192796 ep_poll             0 S com.fiilll.app.launcher

然后敲:

ps -o pid,psr,comm -p `pidof com.gwm.fiill.launcher`

 显示的PSR就是核

  PID PSR COMM2217   1 app_process64

同样的步骤查看system-background

/dev/cpuset/system-background # ps -A -p `cat tasks`
USER           PID  PPID     VSZ    RSS WCHAN            ADDR S NAME
logd           329     1   76160  56700 sigsuspend          0 S logd
system         330     1   11156   3728 binder_ioctl_write_read 0 S servicemanager
system         331     1 2126696   6756 binder_ioctl_write_read 0 S hwservicemanager
system         332     1   11872   3096 binder_ioctl_write_read 0 S vndservicemanager
system         474     1   56072  17740 binder_ioctl_write_read 0 S android.hardware.graphics.composer@2.2-service
root           729     1    9544   2400 ep_poll             0 S lmkd
system         731     1 2192692  34460 ep_poll             0 S surfaceflinger
system         735     1   11220   4420 poll_schedule_timeout 0 S name-server
statsd         897     1   23296   6648 ep_poll             0 S statsd
root           898     1   22688   5752 binder_ioctl_write_read 0 S storaged
root           906     1   38444  13552 poll_schedule_timeout 0 S dlt-daemon
system         954     1 2128968   7096 binder_ioctl_write_read 0 S gatekeeperd
root           955     1   18988   4752 binder_ioctl_write_read 0 S perfprofd
tombstoned     959     1    9232   2300 ep_poll             0 S tombstoned

由于statsd是开机完成前加载的,所以第一次cpuset可能在0-5之间

  PID PSR COMM897   0 statsd

我们以此可以判断开机时候配置的是否正常。

现在杀掉该进程重新加载:

kill -6 `pidof statsd`

再查看它的cpuset:

ps -o pid,psr,comm -p `pidof statsd`

发现cpuset已经变了

  PID PSR COMM9766   3 statsd

http://www.lryc.cn/news/133679.html

相关文章:

  • Lnton羚通关于如何使用nanoPC-T4 安装OpenCV?
  • 内存泄漏:前端开发者的噩梦——内存泄露的原因及排查
  • 高效使用ChatGPT之ChatGPT客户端
  • 【腾讯云 TDSQL-C Serverless 产品体验】基于TDSQL-C 存储爬取的QQ音乐歌单数据
  • leetcode 6450. k-avoiding 数组的最小总和
  • 变压器绝缘油耐压试验
  • Windows控制台API官方文档
  • PyTorch DataLoader 报错 “DataLoader worker exited unexpectedly“ 的解决方案
  • 【AI绘画--七夕篇】:七夕特别教程,使用SDXL绘制你的心上人(Stable Diffusion)(封神榜—妲己)
  • hadoop2的集群数据将副本存储在hadoop3
  • c# ??=
  • 存储系统性能优化中IOMMU的作用是什么?
  • localhost:8080 is already in use
  • 机器学习深度学习——NLP实战(自然语言推断——数据集)
  • 攻防世界-simple_php
  • 2023MyBatis 八股文——面试题
  • 解决出海痛点:亚马逊云科技助力智能涂鸦,实现设备互联互通
  • 国际刑警组织逮捕 14 名涉嫌盗窃 4000 万美元的网络罪犯
  • MySQL卸载-Linux版
  • 快速学会创建uni-app项目并了解pages.json文件
  • 选云服务器还是物理服务器
  • 最新ChatGPT网站AI系统源码+详细图文搭建教程/支持GPT4.0/AI绘画/H5端/Prompt知识库/
  • Web3 游戏七月洞察:迈向主流采用的临界点?
  • Python爬虫——scrapy_多网页下载
  • JDK JRE JVM 三者之间的详解
  • excel常见的数学函数篇2
  • Certify The Web (IIS)
  • 【c语言】五子棋(EasyX图形库+背景音乐)
  • 【OpenCV 】对极几何标定质量验证
  • Netty:ByteBuf的清空操作