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.mzph.cn/news/49681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【附安装包】Tecplot 360 EX2022安装教程

软件下载 软件:Tecplot 360版本:2022语言:英文大小:388.97M安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.5GHz 内存4G(或更高)下载通道①百度网盘丨64位下载链接:https://pan.baid…

Ctfshow web入门 命令执行RCE篇 web29-web77 与 web118-web124 详细题解 全

Ctfshow 命令执行 web29 pregmatch是正则匹配函数,匹配是否包含flag,if(!preg_match("/flag/i", $c)),/i忽略大小写 可以利用system来间接执行系统命令 flag采用f*绕过,或者mv fl?g.php 1.txt修改文件名&#xff0c…

DDD 架构分层,MQ消息要放到那一层处理?

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 本文的宗旨在于通过简单干净实践的方式教会读者,使用 Docker 配置 RocketMQ 并在基于 DDD 分层结构的 SpringBoot 工…

多个微信号怎么快速发圈、自动加好友、自动回复?

一键助你快速发圈、批量自动加好友、自动回复,好用哭了! 微信管理系统是一个聚合管理多个微信账号的利器,让你的微信管理变得简单高效。不管你是电商、微商,还是拥有多个微信号的用户,这一款微信管理软件都可以满足你的…

【数据结构】 LinkedList的模拟实现与使用

文章目录 🍀什么是LinkedList🌴LinkedList的模拟实现🚩创建双链表🚩头插法🚩尾插法🚩任意位置插入🚩查找关键字🚩链表长度🚩打印链表🚩删除第一次出现关键字为…

javaScript:带你深入了解基本数据类型和引用类型

目录 一.前言 二.Ecmascript 规定的变量有两种 补充 1.基本数据类型(重点掌握) 基本数据类型的特点 2.引用数据类型 (重点掌握) 引用数据类型的特点 三.什么是栈?堆? 下面代码帮助了解 解释 官…

spring boot分装通用的查询+分页接口

背景 在用spring bootmybatis plus实现增删改查的时候,总是免不了各种模糊查询和分页的查询。每个数据表设计一个模糊分页,这样代码就造成了冗余,且对自身的技能提升没有帮助。那么有没有办法实现一个通用的增删改查的方法呢?今天…

爬虫工具的选择与使用:阐述Python爬虫优劣势

作为专业爬虫ip方案解决服务商,我们每天都面对着大量的数据采集任务需求。在众多的爬虫工具中,Python爬虫凭借其灵活性和功能强大而备受青睐。本文将为大家分享Python爬虫在市场上的优势与劣势,帮助你在爬虫业务中脱颖而出。 一、优势篇 灵活…

HTML中,常用的布局方式

在HTML中&#xff0c;常用的布局方式有以下几种&#xff1a; 表格布局: 使用<table>、<tr>和<td>元素来创建一个表格布局。这种布局方式简单易懂&#xff0c;适用于需要展示数据的情况。但是不建议在网页布局中频繁使用表格布局&#xff0c;因为其结构较为复…

MySQL的基础操作

前言 对MySQL的一些基础操作做一下学习性的总结&#xff0c;基本上是照着视频写的。 MySQL的安装 MySQL的下载 MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/ 配置环境变量 下载之后直接解压&#xff0c…

c++ 虚函数类对象模型

一、复杂的菱形继承及菱形虚拟继承 单继承&#xff1a;一个子类只有一个直接父类时称这个继承关系为单继承。 多继承&#xff1a;一个子类有两个或以上直接父类时称这个继承关系为多继承。 菱形继承&#xff1a;菱形继承是多继承的一种特殊情况。 菱形继承的问题&#xff1a;从…

2023年京东儿童智能手表行业数据分析(京东销售数据分析)

儿童消费市场向来火爆&#xff0c;儿童智能手表作为能够实现定位导航&#xff0c;信息通讯&#xff0c;SOS求救&#xff0c;远程监听&#xff0c;智能防丢等多功能的智能可穿戴设备&#xff0c;能够通过较为精准的定位功能和安全防护能力保障儿童的安全&#xff0c;因而广受消费…

2023-08-21力扣每日一题

链接&#xff1a; 2337. 移动片段得到字符串 题意&#xff1a; L可以和左边的_交换&#xff0c;R可以和右边的_交换&#xff0c;求判断A是否能通过交换&#xff08;不限次数&#xff09;变成B 解&#xff1a; 观察可知&#xff0c;如果存在RL,一定不能交换出LR&#xff0c…

C#详解-Contains、StartsWith、EndsWith、Indexof、lastdexof

目录 简介: 过程: 举例1.1 举例1.2 ​ 总结: 简介: 在C#中Contains、StarsWith和EndWith、IndexOf都是字符串函数。 1.Contains函数用于判断一个字符串是否包含指定的子字符串&#xff0c;返回一个布尔值&#xff08;True或False&#xff09;。 2.StartsWith函数用于判断一…

数据结构-二叉树

在学习二叉树之前.必须先要掌握一些树的重要概念: 结点的度:一个结点含有的子树个数称为该结点的度.树的度:一棵树中,所有节点度的最大值称为树的度.叶子结点:度为0的结点称为叶子节点.(也叫终端结点)双亲结点:若一个结点含有子结点,则这个结点称为其子结点的双亲结点(也叫父节…

USB隔离器电路分析,SA8338矽塔sytatek电机驱动,源特科技VPS8701,开关电源,电源 大师

一、 USB隔离器电路分析 进行usb隔离可以使用USB隔离模块 ADUM3160 ADUM4160 注意&#xff1a;B0505S 最大带载0.16A&#xff0c;副边需要带载能力需要改变方案 比如移动硬盘至少需要0.5A 用充电宝、18650、设计5V1A输出电源 二、 1A隔离电压方案

Perl 解析字符串为日期对象并获取多天前的日期字符串

Perl 解析字符串 perl语言中的库 Time::Piece可以将字符串解析为日期对象。 use Time::Piece; my ($y, $m, $d) 20230823 ~ /^([0-9]{4})([0-9]{2})([0-9]{2})\z/ or die;my $dt Time::Piece->strptime("$y$m$d","%Y%m%d");Perl获取多天之前的日期 …

redis乐观锁+启用事务解决超卖

乐观锁用于监视库存&#xff08;watch&#xff09;&#xff0c;然后接下来就启用事务。 启用事务&#xff0c;将减库存、下单这两个步骤&#xff0c;放到一个事务当中即可解决秒杀问题、防止超卖。 但是&#xff01;&#xff01;&#xff01;乐观锁&#xff0c;会带来" …

Leetcode67 二进制求和

给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 代码 class Solution {public String addBinary(String a, String b) {StringBuilder res new StringBuilder();int carry 0;int i a.length() - 1, j b.length() - 1;while(i > 0 || j &…

软考高级系统架构设计师系列之:论文典型试题写作要点和写作素材总结系列文章一

软考高级系统架构设计师系列之:论文典型试题写作要点和写作素材总结系列文章一 一、论软件体系结构风格及其应用1.论文题目2.写作要点和写作素材二、论开放系统应用的互操作性技术1.论文题目2.写作要点和写作素材三、论多层分布结构系统的开发1.论文题目2.写作要点和写作素材四…