[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170307133529.GB31241@codeblueprint.co.uk>
Date: Tue, 7 Mar 2017 13:35:29 +0000
From: Matt Fleming <matt@...eblueprint.co.uk>
To: Wanpeng Li <kernellwp@...il.com>
Cc: linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
Ingo Molnar <mingo@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Wanpeng Li <wanpeng.li@...mail.com>,
Juri Lelli <juri.lelli@....com>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH] sched/deadline: Add missing update_rq_clock() in
dl_task_timer()
On Mon, 06 Mar, at 09:51:28PM, Wanpeng Li wrote:
> From: Wanpeng Li <wanpeng.li@...mail.com>
>
> The following warning can be triggered by hot-unplugging the CPU
> on which an active SCHED_DEADLINE task is running on:
>
> ------------[ cut here ]------------
> WARNING: CPU: 7 PID: 0 at kernel/sched/sched.h:833 replenish_dl_entity+0x71e/0xc40
> rq->clock_update_flags < RQCF_ACT_SKIP
> CPU: 7 PID: 0 Comm: swapper/7 Tainted: G B 4.11.0-rc1+ #24
[...]
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index 99b2c33..c6db3fd 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -638,6 +638,7 @@ static enum hrtimer_restart dl_task_timer(struct hrtimer *timer)
> lockdep_unpin_lock(&rq->lock, rf.cookie);
> rq = dl_task_offline_migration(rq, p);
> rf.cookie = lockdep_pin_lock(&rq->lock);
> + update_rq_clock(rq);
>
> /*
> * Now that the task has been migrated to the new RQ and we
Yeah, I guess the reason we can't use the rq_repin_lock() function is
because of all the DL double rq locking going on inside of
dl_task_offline_migration().
I'd definitely like someone else to verify, but this looks OK to me.
Reviewed-by: Matt Fleming <matt@...eblueprint.co.uk>
Powered by blists - more mailing lists