diff options
author | Dawei Li <daweilics@gmail.com> | 2024-03-14 18:59:16 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2024-05-17 09:49:44 +0200 |
commit | 72bffbf57c5247ac6146d1103ef42e9f8d094bc8 (patch) | |
tree | 2eaf427114098793768a7a252c9a49690e76799f /net/rds/message.c | |
parent | 0f1c74befa656305ecc85c954dc31f84c1cc26e1 (diff) |
sched/fair: Fix initial util_avg calculation
Change se->load.weight to se_weight(se) in the calculation for the
initial util_avg to avoid unnecessarily inflating the util_avg by 1024
times.
The reason is that se->load.weight has the unit/scale as the scaled-up
load, while cfs_rg->avg.load_avg has the unit/scale as the true task
weight (as mapped directly from the task's nice/priority value). With
CONFIG_32BIT, the scaled-up load is equal to the true task weight. With
CONFIG_64BIT, the scaled-up load is 1024 times the true task weight.
Thus, the current code may inflate the util_avg by 1024 times. The
follow-up capping will not allow the util_avg value to go wild. But the
calculation should have the correct logic.
Signed-off-by: Dawei Li <daweilics@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Reviewed-by: Vishal Chourasia <vishalc@linux.ibm.com>
Link: https://lore.kernel.org/r/20240315015916.21545-1-daweilics@gmail.com
Diffstat (limited to 'net/rds/message.c')
0 files changed, 0 insertions, 0 deletions