linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Wanpeng Li <kernellwp@gmail.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	Wanpeng Li <wanpeng.li@hotmail.com>,
	Ingo Molnar <mingo@redhat.com>, Juri Lelli <juri.lelli@arm.com>,
	Luca Abeni <luca.abeni@unitn.it>,
	Frederic Weisbecker <fweisbec@gmail.com>
Subject: Re: [PATCH v3] sched/deadline: Fix the intention to re-evalute tick dependency for offline cpu
Date: Fri, 19 Aug 2016 15:25:49 +0200	[thread overview]
Message-ID: <20160819132549.GG10121@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1470993843-6818-1-git-send-email-wanpeng.li@hotmail.com>

On Fri, Aug 12, 2016 at 05:24:03PM +0800, Wanpeng Li wrote:

> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index d091f4a..ce0fb00 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -641,6 +641,11 @@ static enum hrtimer_restart dl_task_timer(struct hrtimer *timer)
>  		goto unlock;
>  	}
>  
> +#ifdef CONFIG_SMP
> +	if (unlikely(!rq->online))
> +		goto offline;
> +#endif
> +
>  	enqueue_task_dl(rq, p, ENQUEUE_REPLENISH);
>  	if (dl_task(rq->curr))
>  		check_preempt_curr_dl(rq, p, 0);
> @@ -648,6 +653,7 @@ static enum hrtimer_restart dl_task_timer(struct hrtimer *timer)
>  		resched_curr(rq);
>  
>  #ifdef CONFIG_SMP
> +offline:
>  	/*
>  	 * Perform balancing operations here; after the replenishments.  We
>  	 * cannot drop rq->lock before this, otherwise the assertion in
> @@ -659,6 +665,7 @@ static enum hrtimer_restart dl_task_timer(struct hrtimer *timer)
>  	 * XXX figure out if select_task_rq_dl() deals with offline cpus.
>  	 */
>  	if (unlikely(!rq->online)) {
> +		replenish_dl_entity(dl_se, dl_se);
>  		lockdep_unpin_lock(&rq->lock, rf.cookie);
>  		rq = dl_task_offline_migration(rq, p);

So I don't like this, even if it magically works. With this we end up
calling dl_task_offline_migration() -> deactivate_task() while the task
isn't on the runqueue at all.

>  		rf.cookie = lockdep_pin_lock(&rq->lock);
> -- 
> 1.9.1
> 

  parent reply	other threads:[~2016-08-19 13:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-12  9:24 [PATCH v3] sched/deadline: Fix the intention to re-evalute tick dependency for offline cpu Wanpeng Li
2016-08-16  2:04 ` Wanpeng Li
2016-08-19 13:25 ` Peter Zijlstra [this message]
2016-08-19 13:56   ` Wanpeng Li
2016-08-31  9:21     ` Peter Zijlstra
2016-08-31 10:31       ` Wanpeng Li

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=20160819132549.GG10121@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=fweisbec@gmail.com \
    --cc=juri.lelli@arm.com \
    --cc=kernellwp@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luca.abeni@unitn.it \
    --cc=mingo@redhat.com \
    --cc=wanpeng.li@hotmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).