函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\sched\pelt.c Create Date:2022-07-27 10:43:51
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:___update_load_avg

函数原型:static __always_inline void ___update_load_avg(struct sched_avg *sa, unsigned long load, unsigned long runnable)

返回类型:void

参数:

类型参数名称
struct sched_avg *sa
unsigned longload
unsigned longrunnable
229  divider等于LOAD_AVG_MAX减1024加period_contrib
234  load_avg等于div_u64 - unsigned 64bit divide with 32bit divisor*@dividend: unsigned 64bit dividend*@divisor: unsigned 32bit divisor* This is the most common 64bit divide and should be used if possible,* as many 32bit archs can optimize this variant better than a full
235  runnable_load_avg等于div_u64 - unsigned 64bit divide with 32bit divisor*@dividend: unsigned 64bit dividend*@divisor: unsigned 32bit divisor* This is the most common 64bit divide and should be used if possible,* as many 32bit archs can optimize this variant better than a full
236  WRITE_ONCE(util_avg, util_sum / divider)
调用者
名称描述
__update_load_avg_blocked_sesched_entity:* task:* se_runnable() == se_weight()* group: [ see update_cfs_group() ]* se_weight() = tg->weight * grq->load_avg / tg->load_avg* se_runnable() = se_weight(se) * grq->runnable_load_avg / grq->load_avg* load_sum := runnable_sum* load_avg =
__update_load_avg_se
__update_load_avg_cfs_rq
update_rt_rq_load_avg_rq:* util_sum = \Sum se->avg.util_sum but se->avg.util_sum is not tracked* util_sum = cpu_scale * load_sum* runnable_load_sum = load_sum* load_avg and runnable_load_avg are not supported and meaningless.
update_dl_rq_load_avgdl_rq:* util_sum = \Sum se->avg.util_sum but se->avg.util_sum is not tracked* util_sum = cpu_scale * load_sum* runnable_load_sum = load_sum