随笔分类 -  进程管理

调度器37—关中断/关抢占Debug-2-CONFIG_TRACE_IRQFLAGS 的作用
摘要:一、梳理 基于 msm-4.4 注: 本文主要用于求证使能 CONFIG_TRACE_IRQFLAGS 与否的区别。 若使能后会多出下面定义: //kernel/msm-4.4/include/linux/irqflags.h #ifdef CONFIG_TRACE_IRQFLAGS extern 阅读全文

posted @ 2025-07-24 21:59 Hello-World3 阅读(24) 评论(0) 推荐(0)

调度器30—调度相关结构体—struct sched_domain
摘要:一、成员介绍 基于msm-4.4 struct sched_domain { struct sched_domain *parent; struct sched_domain *child; struct sched_group *groups; unsigned long min_interval 阅读全文

posted @ 2025-07-08 21:12 Hello-World3 阅读(27) 评论(0) 推荐(0)

调度器30—调度相关结构体—struct root_domain
摘要:一、成员介绍 基于msm-4.4 struct root_domain { atomic_t refcount; atomic_t rto_count; struct rcu_head rcu; cpumask_var_t span; cpumask_var_t online; bool overl 阅读全文

posted @ 2025-07-08 21:06 Hello-World3 阅读(19) 评论(0) 推荐(0)

调度器75—reserved cpu
摘要:一、调用路径 基于msm-4.4 1. mark_reserved() 调用路径: scheduler_tick //core.c scheduler_ipi //core.c check_for_migration //fair.c 若new_cpu是active balance迁移的目标cpu时 阅读全文

posted @ 2025-07-07 16:19 Hello-World3 阅读(12) 评论(0) 推荐(0)

调度器73—sched_ext-1-内核文档翻译
摘要:一、sched-ext.rst 翻译自:linux-6.13.6/Documentation/scheduler/sched-ext.rst 1. 可扩展调度程序类 sched_ext 是一个调度器类,其行为可以由一组BPF程序定义,即BPF调度器。 * sched_ext 导出一个完整的调度接口, 阅读全文

posted @ 2025-03-10 01:23 Hello-World3 阅读(496) 评论(0) 推荐(0)

调度器68—EEVDF调度器-1-内核文档翻译
摘要:一、sched-eevdf.rst 翻译自 Linux-6.13.6 Documentation/scheduler/sched-eevdf.rst EEVDF调度器 “最早符合条件的虚拟截止日期优先”(EEVDF)于1995年在一份科学出版物中首次提出[1]。Linux内核在版本6.6中开始过渡到 阅读全文

posted @ 2025-03-09 19:45 Hello-World3 阅读(508) 评论(0) 推荐(0)

调度器74—sched_ext
摘要:参考: 内核调度客制化利器:SCHED_EXT: https://mp.weixin.qq.com/s/89PuLJDE4aE1c3cWG6ZL8g //内核工匠sched_ext BPF调度器的大爆发: https://mp.weixin.qq.com/s/dROgVWa3UdcQbC1RhyMp 阅读全文

posted @ 2025-03-08 17:08 Hello-World3 阅读(118) 评论(0) 推荐(0)

调度器69—ENQUEUE/DEQUEUE flags
摘要:基于 msm-4.14 一、简介 1. 在 enqueue_task/dequeue_task 向就绪队列插入和移除任务的时候,通过 flags 参数判断是由于什么原因触发的enqueue和dequeue,并进行不同的响应。 2. 相关函数: //kernel/sched/core.c static 阅读全文

posted @ 2024-12-04 18:09 Hello-World3 阅读(128) 评论(0) 推荐(0)

调度器22—调频-interactive governor分析
摘要:基于msm-4.4 一、概述 Interactive Governor‌实现调频的核心思想是通过选择最小的频率来满足目标负载。这个过程涉及两个主要因素:系统频率的平均频率 loadadjfreq 和系统设定好的目标负载 target load。Interactive Governor 通过 choo 阅读全文

posted @ 2024-08-23 17:39 Hello-World3 阅读(146) 评论(0) 推荐(0)

调度器68—EEVDF调度器
摘要:一、EEVDF调度器简介 EEVDF(Earliest Eligible Virtual Deadline First) 最早符合条件的虚拟截止日期优先。由Peter Zijlstra提交,最早合入到Linux6.6,在Linux6.10上完成功能,计划用于改进现有的CFS调度器。 EEVDF是一种 阅读全文

posted @ 2024-06-18 10:41 Hello-World3 阅读(956) 评论(0) 推荐(0)

调度器59—CONFIG_SCHED_DEBUG 的作用
摘要:一、使能 CONFIG_SCHED_DEBUG 提供的文件 1. /proc/pid/sched 文件 cat显示统计数据,echo清0,无论echo的是啥。 2. /proc/sys/kernel 下的 sched_min_granularity_nssched_latency_nssched_s 阅读全文

posted @ 2023-09-22 22:32 Hello-World3 阅读(769) 评论(0) 推荐(0)

调度器30—调度相关结构体—p->flags
摘要:一、PF_EXITING 1. 赋值路径 各驱动和内核机制中直接调用 SYSCALL_DEFINE1(exit, int, error_code) //exit.c do_exit(code); //exit.c exit_signals(tsk); //signal.c tsk->flags |= 阅读全文

posted @ 2023-02-16 22:44 Hello-World3 阅读(90) 评论(0) 推荐(0)

调度器44—root_domain—更新路径
摘要:1. root_domain 的路径的赋值路径 kernel_init_freeable //内核初始化路径调用 【2】 sched_init_smp //core.c 传参 cpu_active_mask sched_init_domains //topology.c 传参为cpu_map 和 N 阅读全文

posted @ 2023-02-11 23:28 Hello-World3 阅读(258) 评论(0) 推荐(0)

常用或优秀代码段
摘要:一、CPU相关 1. 相关路由宏 task_cpu(p) //获取task所在的CPUtask_rq() //task所在的rqcpu_of(rq) //获取指定rq的CPUcpu_rq() //获取指定CPU的 rqthis_rq() //获取当前CPU的rqraw_rq() //raw_cpu_ 阅读全文

posted @ 2023-02-10 15:19 Hello-World3 阅读(448) 评论(0) 推荐(1)

调度器30—调度相关结构体—p->state
摘要:一、TASK_DEAD 1. 赋值调用路径 do_exit //的最后调用 do_task_dead //sched/core.c set_special_state(TASK_DEAD); WRITE_ONCE(current->__state, state_value); copy_proces 阅读全文

posted @ 2023-01-31 22:37 Hello-World3 阅读(309) 评论(0) 推荐(0)

调度器57-2-进程和线程的差异
摘要:一、创建传参差异 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 阅读(181) 评论(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 阅读(646) 评论(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 阅读(1072) 评论(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 阅读(670) 评论(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 阅读(1606) 评论(0) 推荐(0)

导航