调度器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;
    unsigned long max_interval;
    unsigned int busy_factor;
    unsigned int imbalance_pct;
    unsigned int cache_nice_tries;
    unsigned int busy_idx;
    unsigned int idle_idx;
    unsigned int newidle_idx;
    unsigned int wake_idx;
    unsigned int forkexec_idx;
    unsigned int smt_gain;
    int nohz_idle;
    int flags;
    int level;
    unsigned long last_balance;
    unsigned int balance_interval;
    unsigned int nr_balance_failed;
    u64 max_newidle_lb_cost;
    unsigned long next_decay_max_lb_cost;
#ifdef CONFIG_SCHEDSTATS
    unsigned int lb_count[CPU_MAX_IDLE_TYPES];
    unsigned int lb_failed[CPU_MAX_IDLE_TYPES];
    unsigned int lb_balanced[CPU_MAX_IDLE_TYPES];
    unsigned int lb_imbalance[CPU_MAX_IDLE_TYPES];
    unsigned int lb_gained[CPU_MAX_IDLE_TYPES];
    unsigned int lb_hot_gained[CPU_MAX_IDLE_TYPES];
    unsigned int lb_nobusyg[CPU_MAX_IDLE_TYPES];
    unsigned int lb_nobusyq[CPU_MAX_IDLE_TYPES];
    /* Active load balancing */
    unsigned int alb_count;
    unsigned int alb_failed;
    unsigned int alb_pushed;
    /* SD_BALANCE_EXEC stats */
    unsigned int sbe_count;
    unsigned int sbe_balanced;
    unsigned int sbe_pushed;
    /* SD_BALANCE_FORK stats */
    unsigned int sbf_count;
    unsigned int sbf_balanced;
    unsigned int sbf_pushed;
    /* try_to_wake_up() stats */
    unsigned int ttwu_wake_remote;
    unsigned int ttwu_move_affine;
    unsigned int ttwu_move_balance;

    struct eas_stats eas_stats;
#endif
    char *name;
    union {
        void *private;
        struct rcu_head rcu;
    };

    unsigned int span_weight;
    unsigned long span[0];
};

sd_init() 中进行初始化

balance_interval: 此sd两次均衡之间需要保持的间隔。

 

posted on 2025-07-08 21:12  Hello-World3  阅读(18)  评论(0)    收藏  举报

导航