调度器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 overload; bool overutilized; cpumask_var_t dlo_mask; atomic_t dlo_count; struct dl_bw dl_bw; struct cpudl cpudl; #ifdef HAVE_RT_PUSH_IPI //默认使能 struct irq_work rto_push_work; raw_spinlock_t rto_lock; int rto_loop; int rto_cpu; atomic_t rto_loop_next; atomic_t rto_loop_start; #endif cpumask_var_t rto_mask; struct cpupri cpupri; struct max_cpu_capacity max_cpu_capacity; int max_cap_orig_cpu, min_cap_orig_cpu; };
refcount: 引用计数,跟踪该 root_domain 的被引用次数,确保资源释放的安全性。当引用归零时,内核释放其内存。
rto_count:
rcu
span: 根域覆盖的 CPU 集合。表示该 root_domain 管理的所有 CPU 核心,通常与调度域层级中的顶层域关联。
online: 在线 CPU 集合. 动态更新系统内实际活跃的 CPU,与 span 的区别在于其排除离线或隔离的核心。
overload
overutilized
dlo_mask
dlo_count
dl_bw: Deadline 带宽控制,管理根域内所有 CPU 的 Deadline 任务总带宽(如 sched_rt_runtime_us),防止超限分配。
cpudl: Deadline 调度器状态. 维护 CPU 的绝对截止时间(Deadline)信息,供 EDF(最早截止时间优先)调度器决策任务迁移。
rto_push_work
rto_lock
rto_loop
rto_cpu: 实时过载检测 CPU. 记录最近触发实时过载检查的 CPU ID,用于避免并发检测冲突。
rto_loop_next
rto_loop_start
rto_mask: 过载 CPU 掩码. 标记当前因实时任务过载(如运行队列过长)而需要负载均衡的 CPU。
cpupri: CPU 优先级管理. 用于RT调度类,记录每个 CPU 的优先级状态,辅助选择合适的 CPU 运行实时任务。
max_cpu_capacity:
max_cap_orig_cpu:
min_cap_orig_cpu:
posted on 2025-07-08 21:06 Hello-World3 阅读(15) 评论(0) 收藏 举报