Skip to content

Commit bf9ce3c

Browse files
Ke Wangpundiramit
authored andcommitted
sched: EAS: Fix the condition to distinguish energy before/after
Before commit 5f8b3a7 ("sched/fair: consider task utilization in group_norm_util()"), eenv->util_delta is used to distinguish energy before and energy after in sched_group_energy(). After that commit, eenv->util_delta can not do that any more. In this commit, use trg_cpu to distinguish energy before/after in sched_group_energy(). Before apply this commit, cap_before/cap_delta is not correct: <idle>-0 [001] 147504.608920: sched_energy_diff: pid=7 comm=rcu_preempt src_cpu=1 dst_cpu=3 usage_delta=7 nrg_before=250 nrg_after=250 nrg_diff=0 cap_before=0 cap_after=528 cap_delta=1056 nrg_delta=0 nrg_payoff=0 After apply this commit, cap_before/cap_delta retrun to normal: <idle>-0 [001] 220.494011: sched_energy_diff: pid=7 comm=rcu_preempt src_cpu=1 dst_cpu=2 usage_delta=3 nrg_before=248 nrg_after=248 nrg_diff=0 cap_before=528 cap_after=528 cap_delta=0 nrg_delta=0 nrg_payoff=0 Signed-off-by: Ke Wang <ke.wang@spreadtrum.com>
1 parent dbf572f commit bf9ce3c

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

kernel/sched/fair.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5534,13 +5534,13 @@ static int sched_group_energy(struct energy_env *eenv)
55345534

55355535
if (sg->group_weight == 1) {
55365536
/* Remove capacity of src CPU (before task move) */
5537-
if (eenv->util_delta == 0 &&
5537+
if (eenv->trg_cpu == eenv->src_cpu &&
55385538
cpumask_test_cpu(eenv->src_cpu, sched_group_cpus(sg))) {
55395539
eenv->cap.before = sg->sge->cap_states[cap_idx].cap;
55405540
eenv->cap.delta -= eenv->cap.before;
55415541
}
55425542
/* Add capacity of dst CPU (after task move) */
5543-
if (eenv->util_delta != 0 &&
5543+
if (eenv->trg_cpu == eenv->dst_cpu &&
55445544
cpumask_test_cpu(eenv->dst_cpu, sched_group_cpus(sg))) {
55455545
eenv->cap.after = sg->sge->cap_states[cap_idx].cap;
55465546
eenv->cap.delta += eenv->cap.after;

0 commit comments

Comments
 (0)