Re: [PATCH v5 09/14] sched: Add over-utilization/tipping point indicator

From: Quentin Perret
Date: Thu Aug 02 2018 - 12:04:22 EST


On Thursday 02 Aug 2018 at 14:26:29 (+0200), Peter Zijlstra wrote:
> On Tue, Jul 24, 2018 at 01:25:16PM +0100, Quentin Perret wrote:
> > @@ -5100,8 +5118,17 @@ 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);
> > + /*
> > + * The utilization of a new task is 'wrong' so wait for it
> > + * to build some utilization history before trying to detect
> > + * the overutilized flag.
> > + */
> > + if (flags & ENQUEUE_WAKEUP)
> > + update_overutilized_status(rq);
> > +
> > + }
> >
> > hrtick_update(rq);
> > }
>
> That is a somewhat dodgy hack. There is no guarantee what so ever that
> when the task wakes next its history is any better. The comment doesn't
> reflect this I feel.

AFAICT the main use-case here is to avoid re-enabling the load balance
and ruining all the task placement because of a tiny task. I don't
really see how we can do that differently ...

Or am I missing something Morten ?

In the meantime, I can try to improve the comment at least :-)

Thanks,
Quentin