Re: [PATCH] sched/fair: Fix task utilization accountability in cpu_util_next()

From: Quentin Perret
Date: Mon Feb 22 2021 - 05:14:18 EST


Hey Vincent,

On Monday 22 Feb 2021 at 09:54:01 (+0000), vincent.donnefort@xxxxxxx wrote:
> From: Vincent Donnefort <vincent.donnefort@xxxxxxx>
>
> Currently, cpu_util_next() estimates the CPU utilization as follows:
>
> max(cpu_util + task_util,
> cpu_util_est + task_util_est)

s/task_util_est/_task_util_est

This is an important difference.

>
> This is an issue when making a comparison between CPUs, as the task
> contribution can be either:
>
> (1) task_util_est, on a mostly idle CPU, where cpu_util is close to 0
> and task_util_est > cpu_util.
> (2) task_util, on a mostly busy CPU, where cpu_util > task_util_est.

I don't understand how this is an issue, this is by design with util-est
no?

Note that cpu_util_next() tries to accurately predict what cpu_util(@cpu)
will be once @p is enqueued on @dst_cpu. There should be no policy
decision here, we just reproduce the enqueue aggreagation -- see
util_est_enqueue() and cpu_util().

Could you please give an example where you think cpu_util_next()
computes the wrong value?

Thanks,
Quentin