Re: [PATCH] sched/fair: avoid vruntime compensation for SCHED_IDLE task

From: Vincent Guittot
Date: Thu Aug 20 2020 - 08:51:55 EST


On Thu, 20 Aug 2020 at 14:00, Jiang Biao <benbjiang@xxxxxxxxx> wrote:
>
> From: Jiang Biao <benbjiang@xxxxxxxxxxx>
>
> Vruntime compensation has been down in place_entity() to
> boot the waking procedure for fair tasks. There is no need to

s/boot/boost/ ?

> do that for SCHED_IDLE task actually.
>
> Not compensating vruntime for SCHED_IDLE task could make
> SCHED_IDLE task more harmless for normal tasks.
>
> Signed-off-by: Jiang Biao <benbjiang@xxxxxxxxxxx>
> ---
> kernel/sched/fair.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 1a68a0536add..adff77676a0a 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -4115,7 +4115,7 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
> vruntime += sched_vslice(cfs_rq, se);
>
> /* sleeps up to a single latency don't count. */
> - if (!initial) {
> + if (!initial && likely(!task_has_idle_policy(task_of(se)))) {

What if se is not a task ?

> unsigned long thresh = sysctl_sched_latency;
>
> /*
> --
> 2.21.0
>