All of lore.kernel.org
 help / color / mirror / Atom feed
From: luca abeni <luca.abeni@unitn.it>
To: Juri Lelli <juri.lelli@arm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	linux-kernel@vger.kernel.org, peterz@infradead.org,
	mingo@redhat.com
Subject: Re: [PATCH] sched/deadline: remove useless param from setup_new_dl_entity
Date: Fri, 17 Jun 2016 22:15:18 +0200	[thread overview]
Message-ID: <20160617221518.75427592@utopia> (raw)
In-Reply-To: <20160617162837.GQ5981@e106622-lin>

On Fri, 17 Jun 2016 17:28:37 +0100
Juri Lelli <juri.lelli@arm.com> wrote:
[...]
> True, but we were practically already using the same parameter, under a
> different name though, after
> 
> 2f9f3fdc928 "sched/deadline: Remove dl_new from struct sched_dl_entity"
> 
> as we currently do:
> 
>   setup_new_dl_entity(&p->dl, &p->dl)
> 
> > This patch reverts part of the change done in
> > commit 2d3d891d334 "sched/deadline: Add SCHED_DEADLINE inheritance
> > logic"
> >   
> 
> Before Luca's change we were doing
> 
>  setup_new_dl_entity(dl_se, pi_se)
> 
> in update_dl_entity() for a dl_se->new entity. So, I guess the question
> is actually why we wanted to use pi_se's parameters (the potential PI
> donor) for setting up a new entity?
That's a good question :)

> Maybe we broke the situation where a
> task is currently boosted by a DEADLINE waiter and we swich the holder
> to DEADLINE?
I remember I tested this setup (using linaro's version of rt-app), and
it seemed to work correctly...

Re-reading the code now, I actually wonder why my patch did not break
inheritance in this situation...


			Luca
> 
> > It would be nice to have the reason in the change log.
> >   
> 
> Thanks a lot for pointing out what might be more than inaccuracy in the
> changelog.
> 
> Best,
> 
> - Juri
> 
> >   
> > > Remove the second, useless, parameter.
> > > 
> > > Cc: Ingo Molnar <mingo@redhat.com>
> > > Cc: Peter Zijlstra <peterz@infradead.org>
> > > Cc: Steven Rostedt <rostedt@goodmis.org>
> > > Cc: Luca Abeni <luca.abeni@unitn.it>
> > > Signed-off-by: Juri Lelli <juri.lelli@arm.com>
> > > ---
> > >  kernel/sched/deadline.c | 9 ++++-----
> > >  1 file changed, 4 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> > > index fcb7f0217ff4..5229788a4765 100644
> > > --- a/kernel/sched/deadline.c
> > > +++ b/kernel/sched/deadline.c
> > > @@ -346,8 +346,7 @@ static void check_preempt_curr_dl(struct rq *rq, struct task_struct *p,
> > >   * one, and to (try to!) reconcile itself with its own scheduling
> > >   * parameters.
> > >   */
> > > -static inline void setup_new_dl_entity(struct sched_dl_entity *dl_se,
> > > -				       struct sched_dl_entity *pi_se)
> > > +static inline void setup_new_dl_entity(struct sched_dl_entity *dl_se)
> > >  {
> > >  	struct dl_rq *dl_rq = dl_rq_of_se(dl_se);
> > >  	struct rq *rq = rq_of_dl_rq(dl_rq);
> > > @@ -367,8 +366,8 @@ static inline void setup_new_dl_entity(struct sched_dl_entity *dl_se,
> > >  	 * future; in fact, we must consider execution overheads (time
> > >  	 * spent on hardirq context, etc.).
> > >  	 */
> > > -	dl_se->deadline = rq_clock(rq) + pi_se->dl_deadline;
> > > -	dl_se->runtime = pi_se->dl_runtime;
> > > +	dl_se->deadline = rq_clock(rq) + dl_se->dl_deadline;
> > > +	dl_se->runtime = dl_se->dl_runtime;
> > >  }
> > >  
> > >  /*
> > > @@ -1721,7 +1720,7 @@ static void switched_from_dl(struct rq *rq, struct task_struct *p)
> > >  static void switched_to_dl(struct rq *rq, struct task_struct *p)
> > >  {
> > >  	if (dl_time_before(p->dl.deadline, rq_clock(rq)))
> > > -		setup_new_dl_entity(&p->dl, &p->dl);
> > > +		setup_new_dl_entity(&p->dl);
> > >  
> > >  	if (task_on_rq_queued(p) && rq->curr != p) {
> > >  #ifdef CONFIG_SMP  
> >   

  reply	other threads:[~2016-06-17 20:15 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-17  9:48 [PATCH] sched/deadline: remove useless param from setup_new_dl_entity Juri Lelli
2016-06-17  9:58 ` luca abeni
2016-06-17 10:08   ` Juri Lelli
2016-06-17 13:49 ` Steven Rostedt
2016-06-17 16:28   ` Juri Lelli
2016-06-17 20:15     ` luca abeni [this message]
2016-06-17 20:36       ` luca abeni
2016-06-27 15:52     ` Peter Zijlstra
2016-06-27 17:24       ` Juri Lelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160617221518.75427592@utopia \
    --to=luca.abeni@unitn.it \
    --cc=juri.lelli@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.