On Thu, Jun 28, 2018 at 12:40:39PM +0100, Quentin Perret wrote:
> @@ -5384,6 +5402,7 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, 
> int flags)
>  {
>       struct cfs_rq *cfs_rq;
>       struct sched_entity *se = &p->se;
> +     int task_new = !(flags & ENQUEUE_WAKEUP);
>  
>       /*
>        * The code below (indirectly) updates schedutil which looks at
> @@ -5431,8 +5450,12 @@ enqueue_task_fair(struct rq *rq, struct task_struct 
> *p, int flags)
>               update_cfs_group(se);
>       }
>  
> -     if (!se)
> +     if (!se) {
>               add_nr_running(rq, 1);
> +             if (!task_new)
> +                     update_overutilized_status(rq);

I'm confused... why only for !ENQUEUE_WAKEUP and why use a local
variable for something that's used only once?

> +     }
>  
>       hrtick_update(rq);
>  }

Reply via email to