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_s