From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965008AbdEKOgB (ORCPT ); Thu, 11 May 2017 10:36:01 -0400 Received: from mail-io0-f171.google.com ([209.85.223.171]:33352 "EHLO mail-io0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933583AbdEKOfo (ORCPT ); Thu, 11 May 2017 10:35:44 -0400 Subject: Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks To: Xunlei Pang , linux-kernel@vger.kernel.org Cc: Peter Zijlstra , Juri Lelli , Ingo Molnar , Steven Rostedt , Luca Abeni References: <1494421417-27550-1-git-send-email-xlpang@redhat.com> From: Daniel Bristot de Oliveira Message-ID: Date: Thu, 11 May 2017 16:35:28 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <1494421417-27550-1-git-send-email-xlpang@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/10/2017 03:03 PM, Xunlei Pang wrote: > When a contrained task is throttled by dl_check_constrained_dl(), > it may carry the remaining positive runtime, as a result when > dl_task_timer() fires and calls replenish_dl_entity(), it will > not be replenished correctly due to the positive dl_se->runtime. > > This patch assigns its runtime to 0 if positive after throttling. > > Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline) > Cc: Daniel Bristot de Oliveira > Signed-off-by: Xunlei Pang > --- > kernel/sched/deadline.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c > index a2ce590..d3d291e 100644 > --- a/kernel/sched/deadline.c > +++ b/kernel/sched/deadline.c > @@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se) > if (unlikely(dl_se->dl_boosted || !start_dl_timer(p))) > return; > dl_se->dl_throttled = 1; > + if (dl_se->runtime > 0) > + dl_se->runtime = 0; > } > } Acked-by: Daniel Bristot de Oliveira -- Daniel