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
>
next prev 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).