调度器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)    收藏  举报

导航