Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp4679160imm; Wed, 30 May 2018 09:52:23 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJl8rSlRxgVZKJcfk15YXq4BVYBNzGaqtwrJK2wqOMvM1tUWmeA5S0VtO9gCf/WVyXyaHFM X-Received: by 2002:a17:902:9b8f:: with SMTP id y15-v6mr3629079plp.187.1527699143182; Wed, 30 May 2018 09:52:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527699143; cv=none; d=google.com; s=arc-20160816; b=DYPLACT4irDeLxCqDvHQbIdGLS2D2zpUkLnpqLNf/NFnlqYNMWwCchywRD64P5b/Du 7WWihYQzthz4x2TGVIV/6i3zIVkSaXDTR7TL+wu3vmb/+4CnrNrc02miYpAR9Eh9hBwm Tg3EZG2VwFq8G5HpB6ObC56IgiGgw4kpw0xqmNVrPInjmVE3vGftYManCfflbJKPJW9f bO/3Gipsv7XiLHob/wbNCYmyT/70DH5HQ6H8Uj7pvFDIZw/9gNaQN2ffM2CKedtKD2nc yw+t+0VMTDodvyYPLhVJ4Hiehn5kxFoVOOAPyT9zV7IPw9F/8/8isZc/CaO15in0YdmA ew3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=8ObAYTkcwOq9tG/Xqwl9BVcextTjUe09fIAuCKzNMcM=; b=vniYCPwoL9OOKXBi6w21zq5lnreleDW6MO66dp0K/4ajsnuHLge2wTjJFugEhxcKab /DWRiOatclYSVf7tIgTVNome/eNYtkh3/qxL6153fQj7QBwogqOwUHdSKja0nvQAzQ9n y4bSnMfQTC7TVaiOsIAKM8cYnPV89GlQOflMysGHpNCykt8ZHYCis4Acemid3iwAnhmy gNhPZY1+VOt+xuhI6An11+qUgHR4XPAz5CwtphvuGNz99Kk5nEKdm+h2K+XH3CJ8qSeH WIrY+1Ot90A9El/ItzD/FlEN7swBbCO/bkz1q4Q51B6gj2f4VRoweu2RN/PMi7cYcvby S5Rg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 2-v6si35855607pfk.287.2018.05.30.09.52.08; Wed, 30 May 2018 09:52:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753962AbeE3QuQ (ORCPT + 99 others); Wed, 30 May 2018 12:50:16 -0400 Received: from foss.arm.com ([217.140.101.70]:59534 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753563AbeE3QuP (ORCPT ); Wed, 30 May 2018 12:50:15 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1D2A415AD; Wed, 30 May 2018 09:50:15 -0700 (PDT) Received: from e110439-lin (e110439-lin.cambridge.arm.com [10.1.210.68]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DCE143F25D; Wed, 30 May 2018 09:50:12 -0700 (PDT) Date: Wed, 30 May 2018 17:50:10 +0100 From: Patrick Bellasi To: "Rafael J. Wysocki" Cc: Linux Kernel Mailing List , Linux PM , Ingo Molnar , Peter Zijlstra , "Rafael J . Wysocki" , Viresh Kumar , Vincent Guittot , Dietmar Eggemann , Morten Rasmussen , Juri Lelli , Joel Fernandes , Steve Muckle Subject: Re: [PATCH v3 1/2] sched/cpufreq: always consider blocked FAIR utilization Message-ID: <20180530165010.GK30654@e110439-lin> References: <20180524141023.13765-1-patrick.bellasi@arm.com> <20180524141023.13765-2-patrick.bellasi@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 27-May 11:50, Rafael J. Wysocki wrote: > On Thu, May 24, 2018 at 4:10 PM, Patrick Bellasi > wrote: > > Since the refactoring introduced by: > > > > commit 8f111bc357aa ("cpufreq/schedutil: Rewrite CPUFREQ_RT support") > > > > we aggregate FAIR utilization only if this class has runnable tasks. > > This was mainly due to avoid the risk to stay on an high frequency just > > because of the blocked utilization of a CPU not being properly decayed > > while the CPU was idle. > > > > However, since: > > > > commit 31e77c93e432 ("sched/fair: Update blocked load when newly idle") > > > > the FAIR blocked utilization is properly decayed also for IDLE CPUs. > > > > This allows us to use the FAIR blocked utilization as a safe mechanism > > to gracefully reduce the frequency only if no FAIR tasks show up on a > > CPU for a reasonable period of time. > > > > Moreover, we also reduce the frequency drops of CPUs running periodic > > tasks which, depending on the task periodicity and the time required > > for a frequency switch, was increasing the chances to introduce some > > undesirable performance variations. > > > > Reported-by: Vincent Guittot > > Signed-off-by: Patrick Bellasi > > Acked-by: Viresh Kumar > > Acked-by: Vincent Guittot > > Tested-by: Vincent Guittot > > Cc: Ingo Molnar > > Cc: Peter Zijlstra > > Cc: Rafael J. Wysocki > > Cc: Vincent Guittot > > Cc: Viresh Kumar > > Cc: Joel Fernandes > > Cc: linux-kernel@vger.kernel.org > > Cc: linux-pm@vger.kernel.org > > Reviewed-by: Rafael J. Wysocki > > Or please let me know if you want me to apply this one. Hi Rafael, seems this patch has already been applied in tip/sched/core. However is missing your tag above. :/ Dunno if I have / I can to do something about that. > > --- > > Changes in v3: > > - add "Tested-by" and "Acked-by" Vincent tags > > > > Changes in v2: > > - add "Acked-by" Viresh tag > > --- > > kernel/sched/cpufreq_schedutil.c | 17 ++++++++--------- > > 1 file changed, 8 insertions(+), 9 deletions(-) > > > > diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c > > index e13df951aca7..28592b62b1d5 100644 > > --- a/kernel/sched/cpufreq_schedutil.c > > +++ b/kernel/sched/cpufreq_schedutil.c > > @@ -183,22 +183,21 @@ static void sugov_get_util(struct sugov_cpu *sg_cpu) > > static unsigned long sugov_aggregate_util(struct sugov_cpu *sg_cpu) > > { > > struct rq *rq = cpu_rq(sg_cpu->cpu); > > - unsigned long util; > > > > - if (rq->rt.rt_nr_running) { > > - util = sg_cpu->max; > > - } else { > > - util = sg_cpu->util_dl; > > - if (rq->cfs.h_nr_running) > > - util += sg_cpu->util_cfs; > > - } > > + if (rq->rt.rt_nr_running) > > + return sg_cpu->max; > > > > /* > > + * Utilization required by DEADLINE must always be granted while, for > > + * FAIR, we use blocked utilization of IDLE CPUs as a mechanism to > > + * gracefully reduce the frequency when no tasks show up for longer > > + * periods of time. > > + * > > * Ideally we would like to set util_dl as min/guaranteed freq and > > * util_cfs + util_dl as requested freq. However, cpufreq is not yet > > * ready for such an interface. So, we only do the latter for now. > > */ > > - return min(util, sg_cpu->max); > > + return min(sg_cpu->max, (sg_cpu->util_dl + sg_cpu->util_cfs)); > > } > > > > static void sugov_set_iowait_boost(struct sugov_cpu *sg_cpu, u64 time, unsigned int flags) > > -- > > 2.15.1 > > -- #include Patrick Bellasi