Name

update_tg_load_avg — update the tg's load avg

Synopsis

void update_tg_load_avg (struct cfs_rq * cfs_rq,
 int force);
 

Arguments

cfs_rq

the cfs_rq whose avg changed

force

update regardless of how small the difference

Description

This function 'ensures': tg->load_avg := \Sum tg->cfs_rq[]->avg.load. However, because tg->load_avg is a global value there are performance considerations.

In order to avoid having to look at the other cfs_rq's, we use a differential update where we store the last value we propagated. This in turn allows skipping updates if the differential is 'small'.

Updating tg's load_avg is necessary before update_cfs_share (which is done) and effective_load (which is not done because it is too costly).