2.6.4.3 带宽控制 - 定时器
/* file: kernel/sched/fair.c */
void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {
raw_spin_lock_init(&cfs_b->lock);
cfs_b->runtime = 0;
/* 没有限额 */
cfs_b->quota = RUNTIME_INF;
/* 初始化周期为100ms */
cfs_b->period = ns_to_ktime(default_cfs_period());
/* 初始化 throttled 列表 */
INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq);
/* 初始化 period timer */
hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
cfs_b->period_timer.function = sched_cfs_period_timer;
/* 初始化slack timer */
hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
cfs_b->slack_timer.function = sched_cfs_slack_timer;
cfs_b->slack_started = false;
}Last updated