随笔分类 -  进程管理

调度器41—CFS组调度
摘要:基于Linux-5.10.110。 缩写 说明 tse task sched_entity gse group sched_entity grq group sched_entity的my_q成员,也即group sched_entity的cfs_rq ts task 一、CFS组调度简介 1.1. 阅读全文

posted @ 2023-01-06 21:25 Hello-World3 阅读(863) 评论(0) 推荐(0) 编辑

进程管理1——进程和线程的差异
摘要:一、创建传参差异 1. 线程创建 /* pthread_create //glibc __pthread_create_2_1 create_thread do_clone clone //系统调用 */ static int create_thread (struct pthread *pd, . 阅读全文

posted @ 2022-10-13 15:06 Hello-World3 阅读(132) 评论(0) 推荐(0) 编辑

调度器40—sched_features
摘要:基于 Linux-5.10 一、实验 1. kernel/sched/debug.c 中将以debugfs文件导出的 sched_feat_fops 文件改为procfs导出。 static const struct proc_ops sched_feat_proc_fops = { .proc_o 阅读全文

posted @ 2022-10-02 20:51 Hello-World3 阅读(500) 评论(0) 推荐(0) 编辑

进程管理上层代码-1—Process.java
摘要:一、简介 1. 此文件位于 frameworks/base/core/java/android/os/Process.java。是Android中为Java层提供调度相关配置接口的类,其JNI文件是 frameworks/base/core/jni/android_util_Process.cpp。 阅读全文

posted @ 2022-09-14 23:17 Hello-World3 阅读(834) 评论(0) 推荐(0) 编辑

调度器38—cpumask
摘要://include/linux/cpumask.h#define cpu_possible_mask ((const struct cpumask *)&__cpu_possible_mask)#define cpu_online_mask ((const struct cpumask *)&__c 阅读全文

posted @ 2022-08-31 15:51 Hello-World3 阅读(569) 评论(0) 推荐(0) 编辑

调度器30—调度相关结构体—struct sched_entity
摘要:一、struct sched_entity 1. se->sum_exec_runtime 表示实际running的时间,不包括runnable时间。 (1) sum_exec_runtime 的更新逻辑 void set_next_entity(struct cfs_rq *cfs_rq, str 阅读全文

posted @ 2022-07-23 20:08 Hello-World3 阅读(448) 评论(0) 推荐(0) 编辑

调度器35—DEBUG方法汇总-lockdep/hw_breakpoint
摘要:一、基础理论概述 1. 有三种 preemption model 和适用场景 非强占式内核(服务器) 强占式内核(低延迟桌面) voluntary kernel preemption(桌面) 2. 动态功耗 = C * Freq * Voltage^2 其中Freq 是CPU运行频率,Voltage 阅读全文

posted @ 2022-05-01 13:06 Hello-World3 阅读(1354) 评论(0) 推荐(0) 编辑

调度器34—RT负载均衡
摘要:基于 Linux-4.19.153 一、相关结构成员描述 1. struct root_domain 实时调度器需要几个全局的或者说系统范围的资源来作出调度决定,以及 CPU 数量的增加而出现的可伸缩性瓶颈(由于锁保护的这些资源的竞争),Root Domain 引入的目的就是为了减少这样的竞争以改善 阅读全文

posted @ 2022-03-07 01:27 Hello-World3 阅读(1638) 评论(0) 推荐(0) 编辑

调度器32—RT选核
摘要:基于Linux-5.10 一、RT选核流程 1. 主要调用路径 rt_sched_class.select_task_rq //RT调度类回调 select_task_rq_rt //rt.c 前面trace_android_rvh_select_task_rq_rt()若是选到cpu就直接退出了; 阅读全文

posted @ 2022-02-10 23:42 Hello-World3 阅读(1351) 评论(0) 推荐(0) 编辑

调度器31—Linux-5.10 调度相关trace分析技巧汇总
摘要:一、看RT线程的sync唤醒标志 (1) MTK: select_task_rq_rt trace_android_rvh_select_task_rq_rt(p, cpu, sd_flag, flags, &target_cpu); //可以在 /sys/kernel/tracing 下检索到它, 阅读全文

posted @ 2022-02-07 15:55 Hello-World3 阅读(652) 评论(0) 推荐(0) 编辑

调度器28—杂项汇总
摘要:一、获取绑核信息 1. 通过 /proc/<pid>/status 获取 # cat /proc/<pid>/status | grep Cpus_allowed Cpus_allowed: ff Cpus_allowed_list: 0-7 调用路径和函数: struct pid_entry tg 阅读全文

posted @ 2022-01-22 16:02 Hello-World3 阅读(1050) 评论(0) 推荐(0) 编辑

导航