[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190809071306.GL29310@localhost.localdomain>
Date: Fri, 9 Aug 2019 09:13:06 +0200
From: Juri Lelli <juri.lelli@...hat.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Dietmar Eggemann <dietmar.eggemann@....com>, mingo@...nel.org,
linux-kernel@...r.kernel.org, luca.abeni@...tannapisa.it,
bristot@...hat.com, balsini@...roid.com, dvyukov@...gle.com,
tglx@...utronix.de, vpillai@...italocean.com, rostedt@...dmis.org
Subject: Re: [RFC][PATCH 12/13] sched/deadline: Introduce deadline servers
On 08/08/19 12:31, Peter Zijlstra wrote:
> On Thu, Aug 08, 2019 at 10:46:52AM +0200, Juri Lelli wrote:
> > On 08/08/19 10:11, Dietmar Eggemann wrote:
>
> > > What about the fast path in pick_next_task()?
> > >
> > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> > > index bffe849b5a42..f1ea6ae16052 100644
> > > --- a/kernel/sched/core.c
> > > +++ b/kernel/sched/core.c
> > > @@ -3742,6 +3742,9 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
> > > if (unlikely(!p))
> > > p = idle_sched_class.pick_next_task(rq, prev, rf);
> > >
> > > + if (p->sched_class == &fair_sched_class && p->server)
> > > + p->server = NULL;
> > > +
> >
> > Hummm, but then who sets it back to the correct server. AFAIU
> > update_curr() needs a ->server to do the correct DL accounting?
>
> The above looks ok.
>
> The pick_next_task_dl() when it selects a server will set ->server.
OK. Yesterday's IRC conversation resolved my perplexity about this
point. I tried to summarize what I've got in the comment below (which we
might want to add on top of Dietmar's fix).
--->8---
/*
* Since we are executing the fast path it means that the DL
* server was throttled and we'll now be scheduled w/o it. So,
* reset p's pointer to it (accounting won't be performed, as
* it wouldn't make sense while server is thottled).
*/
Powered by blists - more mailing lists