boosted_task_util实际上包含两个部分,当前task的util加上margin值,margin就是将util的值给他扩大或者缩小一定的倍数
boosted_task_util
static inline unsigned long
boosted_task_util(struct task_struct *task)
{
unsigned long util = task_util_est(task);//这里我们假设walt机制是open的
long margin = schedtune_task_margin(task);//margin就是sign除以100
trace_sched_boost_task(task, util, margin);//添加到内核trace log里面
return util + margin;
}
task_util & task_util_est
task util = demand *1024 / window_size ---其中demand为WALT机制中sum_history数组得到的max(latest值,平均值),window_size则是WALT机制中window的大小(默认为20ms)
未开启boost = (delta / window_size) * (cur_freq / max_freq) * cpu_ma

本文介绍了Linux内核调度中boosted_task_util和task_util_est的概念及其计算方法。boosted_task_util是任务利用率,考虑了margin值的增减;task_util_est用于估算任务的负载影响。同时提到了schedtune_task_margin和schedtune_margin在任务负载比例调整中的作用。
最低0.47元/天 解锁文章
237

被折叠的 条评论
为什么被折叠?



