Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp513083ybg; Fri, 18 Oct 2019 03:19:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqzAfbAPd5qvY74BXMLLCOiAqhT8y7UxST1X2tYbLcNtbFRQPMrv87UG14FXhz0SbrmtpKt3 X-Received: by 2002:a17:906:35c7:: with SMTP id p7mr7878036ejb.310.1571393964412; Fri, 18 Oct 2019 03:19:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571393964; cv=none; d=google.com; s=arc-20160816; b=cjDL22hPbloPW+kAehYKJ89+72wugOJgEUh9PZv3x9BYgsG22SFZ3z4oHWR9SLen1Q 4HZloP94dXdX8GTdpi08lGNxgZHN71BpbQaO0vlKriFV/KS9Nnv5SIdQnAoN3SDQyY6p EcgKFW+e1FuclDpURLkbtElD0jBUEb4G6oH9ABrdq4rFN9ZR++bsEJqnMJ7xKtt2as8A mamJEw1lGlZexJxiG10WuTPwIdXCNBRkDIU+qPxYb6JUymequNVkINJ9vT5wNYVhNEF2 34grFrdzk8CM+9tkVq9hYM+eTCQipWmGgvzl2XsjsLP1HarZqwi5SnSwnQZbWFK53fUo Dr5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=blD6IBhsQX+nZ85KKdePnAsBT2G+oQySJXbT/5CG2p0=; b=0XK4H+UkCIfZBRpe41DQmy+XZAQLu/YocKenmAeSuBw5Sdes2ZiQgmflPjZi7gKY6d PtnHk8lzmun2rR/h6KGdcEhh4gHC6OOfvmTHji5mmp5kxd3BH9My8DfcNGb2S50M/7BN 9sE8qucsI5ApxiT50hIOSYMDEwKsKc+xxQmAUOH7E5TFsukXDxRzjEXvSnLNirEH4XAE xCSKZT7pIWhOBTJOmAiTRWLAPknees7a6/4igDDEb5RjKaHs9K3mQDCS8wqHfH077+5E uibo2GySkckpAuq+3/drAuQx9L5UaSmOvyyUoTjr8STecvczdVaz6yufW4U9e8CQnxD7 sAQA== 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 f20si3239729edm.365.2019.10.18.03.19.01; Fri, 18 Oct 2019 03:19:24 -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 S2408416AbfJQI5s (ORCPT + 99 others); Thu, 17 Oct 2019 04:57:48 -0400 Received: from [217.140.110.172] ([217.140.110.172]:35942 "EHLO foss.arm.com" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S2408397AbfJQI5r (ORCPT ); Thu, 17 Oct 2019 04:57:47 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0970B165C; Thu, 17 Oct 2019 01:57:26 -0700 (PDT) Received: from [192.168.0.9] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3BF2B3F718; Thu, 17 Oct 2019 01:57:24 -0700 (PDT) Subject: Re: [RFC PATCH v3 4/6] sched/cpufreq: Introduce sugov_cpu_ramp_boost To: Douglas RAILLARD , linux-kernel@vger.kernel.org Cc: linux-pm@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, rjw@rjwysocki.net, viresh.kumar@linaro.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, qperret@qperret.net, patrick.bellasi@matbug.net, dh.han@samsung.com References: <20191011134500.235736-1-douglas.raillard@arm.com> <20191011134500.235736-5-douglas.raillard@arm.com> From: Dietmar Eggemann Message-ID: <87e6ce4f-af41-c585-7b48-81b5c7f45ef0@arm.com> Date: Thu, 17 Oct 2019 10:57:19 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20191011134500.235736-5-douglas.raillard@arm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/10/2019 15:44, Douglas RAILLARD wrote: [...] > @@ -181,6 +185,42 @@ static void sugov_deferred_update(struct sugov_policy *sg_policy, u64 time, > } > } > > +static unsigned long sugov_cpu_ramp_boost(struct sugov_cpu *sg_cpu) > +{ > + return READ_ONCE(sg_cpu->ramp_boost); > +} > + > +static unsigned long sugov_cpu_ramp_boost_update(struct sugov_cpu *sg_cpu) > +{ > + struct rq *rq = cpu_rq(sg_cpu->cpu); > + unsigned long util_est_enqueued; > + unsigned long util_avg; > + unsigned long boost = 0; > + > + util_est_enqueued = READ_ONCE(rq->cfs.avg.util_est.enqueued); > + util_avg = READ_ONCE(rq->cfs.avg.util_avg); > + > + /* > + * Boost when util_avg becomes higher than the previous stable > + * knowledge of the enqueued tasks' set util, which is CPU's > + * util_est_enqueued. > + * > + * We try to spot changes in the workload itself, so we want to > + * avoid the noise of tasks being enqueued/dequeued. To do that, > + * we only trigger boosting when the "amount of work' enqueued s/"amount of work'/"amount of work" or 'amount of work' [...] > @@ -552,6 +593,8 @@ static unsigned int sugov_next_freq_shared(struct sugov_cpu *sg_cpu, u64 time) > unsigned long j_util, j_max; > > j_util = sugov_get_util(j_sg_cpu); > + if (j_sg_cpu == sg_cpu) > + sugov_cpu_ramp_boost_update(sg_cpu); Can you not call this already in sugov_update_shared(), like in the sugov_update_single() case? diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index e35c20b42780..4c53f63a537d 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -595,8 +595,6 @@ static unsigned int sugov_next_freq_shared(struct sugov_cpu *sg_cpu, u64 time) unsigned long j_util, j_max; j_util = sugov_get_util(j_sg_cpu); - if (j_sg_cpu == sg_cpu) - sugov_cpu_ramp_boost_update(sg_cpu); j_max = j_sg_cpu->max; j_util = sugov_iowait_apply(j_sg_cpu, time, j_util, j_max); @@ -625,6 +623,7 @@ sugov_update_shared(struct update_util_data *hook, u64 time, unsigned int flags) ignore_dl_rate_limit(sg_cpu, sg_policy); if (sugov_should_update_freq(sg_policy, time)) { + sugov_cpu_ramp_boost_update(sg_cpu); next_f = sugov_next_freq_shared(sg_cpu, time); [...]