From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760861AbcBYO0O (ORCPT ); Thu, 25 Feb 2016 09:26:14 -0500 Received: from mail-wm0-f43.google.com ([74.125.82.43]:36369 "EHLO mail-wm0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760837AbcBYO0J (ORCPT ); Thu, 25 Feb 2016 09:26:09 -0500 Date: Thu, 25 Feb 2016 15:25:58 +0100 From: luca abeni To: Peter Zijlstra Cc: Juri Lelli , linux-kernel@vger.kernel.org Subject: Re: Question about prio_changed_dl() Message-ID: <20160225152558.2fbac9e5@utopia> In-Reply-To: <20160225140149.GK6357@twins.programming.kicks-ass.net> References: <20160219134345.70ff4aa0@utopia> <20160225140149.GK6357@twins.programming.kicks-ass.net> Organization: university of trento X-Mailer: Claws Mail 3.12.0 (GTK+ 2.24.28; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Peter, On Thu, 25 Feb 2016 15:01:49 +0100 Peter Zijlstra wrote: [...] > > so, prio_changed_dl() invokes switched_to_dl() if > > task_on_rq_queued() is false, but in this case switched_to_dl() > > does nothing... Am I missing something, or the > > } else > > switched_to_dl(rq, p); > > is useless? > > Agreed, see below. > > > (BTW, it seems to me that switched_to_dl() is never invoked, for > > some reason...) > > Hmm, it should be invoked if you do sched_setattr() to get > SCHED_DEADLINE. Sorry, that was me being confused... It is prio_changed_dl() that is not invoked when the deadline parameters are changed (I am testing a change to fix this - it actually is included in the "Move the remaining __dl_{sub,add}_ac() calls from core.c to deadline.c" patch I posted on Monday; I am going to extract it in a separate patch). switched_to_dl() is correctly invoked. > > --- > Subject: sched/deadline: Remove superfluous call to switched_to_dl() This is what I was thinking about, yes :) Thanks, Luca > > if (A || B) { > > } else if (A && !B) { > > } > > If A we'll take the first branch, if !A we will not satisfy the > second. Therefore the second branch will never be taken. > > Cc: Juri Lelli > Reported-by: luca abeni > Signed-off-by: Peter Zijlstra (Intel) > --- > kernel/sched/deadline.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c > index 57b939c81bce..c161c53d9424 100644 > --- a/kernel/sched/deadline.c > +++ b/kernel/sched/deadline.c > @@ -1768,8 +1768,7 @@ static void prio_changed_dl(struct rq *rq, > struct task_struct *p, */ > resched_curr(rq); > #endif /* CONFIG_SMP */ > - } else > - switched_to_dl(rq, p); > + } > } > > const struct sched_class dl_sched_class = { > >