Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp7460831imu; Tue, 22 Jan 2019 06:27:38 -0800 (PST) X-Google-Smtp-Source: ALg8bN4SpKyR91CqwyuIwLpwYEdCJC/13BeAOU8QZIgjB9SNiJ+zWPembw+pLBda0roTnokhG7aY X-Received: by 2002:a63:c904:: with SMTP id o4mr384607pgg.331.1548167258816; Tue, 22 Jan 2019 06:27:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548167258; cv=none; d=google.com; s=arc-20160816; b=XPTpghCVkZNPCq0r6cFuoVAhr6jNsCHe1exl7EF4fkCStraiKvIF2ZQGED8JvgmxPq 851OB29BVjo/H/2MeCflzImTBbQMIzGhM0T7xQLON2J8qi7uvpSLDXeJ/mXCEtgo5bZM UxQHiSQsSEH54eBF4eJyP3InuBW0EYcBZXmBYnR1d4reuAc8u7ZBE/P6qzYglpIlk3ZK A1kbeDe2usBvSsZZvxt6rV+ODB1LRjRCU0DylWr1gNS97EBW52qSCDBU1LUOs+XQFSiB ZAbMtcTk4D32BAz+CDtVESw4oj28ZY/QDWa/dpgp5aqgJeTPIBwGyKwi70z7B/9oHTxw VbYA== 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; bh=Wv6D8vs7cwronWu0fo5oyC9Qd31kdn0WnIzzPwfse+E=; b=f3qyk8KqG8XiwYrRS/hYBsYoJh3EJdDURujo4cT4pNdXAMmzxdNxTMNFk9wMJx9rVZ cKVlAhIOW9pQzkDV5UkuhNvHRxtN0fwHQ1/3fVqsRdj6sfqs/Irp17pbkDOAX3Ig05Kj eZDfoudWCZxwjtknoTEfe+eSiIkkz2TPa+Tf3UVhPSYeqTDSdmSRHScK7eC+DJ9kH+42 FD+bTkRcaVlpCoyhsA++VkfnG/BEmvSokpjGJlTH5q49GZ7ryWjD1dGh3phSCURKnmrc Je+TlCz811vlAYqPHT0DypPdKcwdcxhstUBxRDjpgcYYO11wzk+BI5w6i9xzGGuQF53g epVQ== 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 bg9si11705971plb.317.2019.01.22.06.27.22; Tue, 22 Jan 2019 06:27:38 -0800 (PST) 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 S1728780AbfAVO0M (ORCPT + 99 others); Tue, 22 Jan 2019 09:26:12 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:54338 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728416AbfAVO0M (ORCPT ); Tue, 22 Jan 2019 09:26:12 -0500 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 97007EBD; Tue, 22 Jan 2019 06:26:11 -0800 (PST) Received: from e110439-lin (e110439-lin.cambridge.arm.com [10.1.194.43]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A27F43F614; Tue, 22 Jan 2019 06:26:08 -0800 (PST) Date: Tue, 22 Jan 2019 14:26:06 +0000 From: Patrick Bellasi To: Quentin Perret Cc: linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-api@vger.kernel.org, Ingo Molnar , Peter Zijlstra , Tejun Heo , "Rafael J . Wysocki" , Vincent Guittot , Viresh Kumar , Paul Turner , Dietmar Eggemann , Morten Rasmussen , Juri Lelli , Todd Kjos , Joel Fernandes , Steve Muckle , Suren Baghdasaryan Subject: Re: [PATCH v6 11/16] sched/fair: Add uclamp support to energy_compute() Message-ID: <20190122142606.gc5hnc5pzefblegw@e110439-lin> References: <20190115101513.2822-1-patrick.bellasi@arm.com> <20190115101513.2822-12-patrick.bellasi@arm.com> <20190122121321.r6mv23ao57uut3t7@queper01-lin> <20190122124546.njrpmykzbjpztd6u@e110439-lin> <20190122132944.sfxlnpc3xeft4rqd@queper01-lin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190122132944.sfxlnpc3xeft4rqd@queper01-lin> User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 22-Jan 13:29, Quentin Perret wrote: > On Tuesday 22 Jan 2019 at 12:45:46 (+0000), Patrick Bellasi wrote: > > On 22-Jan 12:13, Quentin Perret wrote: > > > On Tuesday 15 Jan 2019 at 10:15:08 (+0000), Patrick Bellasi wrote: > > > > The Energy Aware Scheduler (AES) estimates the energy impact of waking > > > > [...] > > > > > > + for_each_cpu_and(cpu, pd_mask, cpu_online_mask) { > > > > + cfs_util = cpu_util_next(cpu, p, dst_cpu); > > > > + > > > > + /* > > > > + * Busy time computation: utilization clamping is not > > > > + * required since the ratio (sum_util / cpu_capacity) > > > > + * is already enough to scale the EM reported power > > > > + * consumption at the (eventually clamped) cpu_capacity. > > > > + */ > > > > > > Right. > > > > > > > + sum_util += schedutil_cpu_util(cpu, cfs_util, cpu_cap, > > > > + ENERGY_UTIL, NULL); > > > > + > > > > + /* > > > > + * Performance domain frequency: utilization clamping > > > > + * must be considered since it affects the selection > > > > + * of the performance domain frequency. > > > > + */ > > > > > > So that actually affects the way we deal with RT I think. I assume the > > > idea is to say if you don't want to reflect the RT-go-to-max-freq thing > > > in EAS (which is what we do now) you should set the min cap for RT to 0. > > > Is that correct ? > > > > By default configuration, RT tasks still go to max when uclamp is > > enabled, since they get a util_min=1024. > > > > If we want to save power on RT tasks, we can set a smaller util_min... > > but not necessarily 0. A util_min=0 for RT tasks means to use just > > cpu_util_rt() for that class. > > Ah, sorry, I guess my message was misleading. I'm saying this is > changing the way _EAS_ deals with RT tasks. Right now we don't actually > consider the RT-go-to-max thing at all in the EAS prediction. Your > patch is changing that AFAICT. It actually changes the way EAS sees RT > tasks even without uclamp ... Lemme see if I get it right. Currently, whenever we look at CPU utilization for ENERGY_UTIL, we always use cpu_util_rt() for RT tasks: ---8<--- util = util_cfs; util += cpu_util_rt(rq); util += dl_util; ---8<--- Thus, even when RT tasks are RUNNABLE, we don't always assume the CPU running at the max capacity but just whatever is the aggregated utilization across all the classes. With uclamp, we have: ---8<--- util = cpu_util_rt(rq) + util_cfs; if (type == FREQUENCY_UTIL) util = uclamp_util_with(rq, util, p); dl_util = cpu_util_dl(rq); if (type == ENERGY_UTIL) util += dl_util; ---8<--- So, I would say that, in terms of ENERGY_UTIL we do the same both w/ and w/o uclamp. Isn't it? > But I'm not hostile to the idea since it's possible to enable uclamp and > set the min cap to 0 for RT if you want. So there is a story there. > However, I think this needs be documented somewhere, at the very least. The only difference I see is that the actual frequency could be different (lower then max) when a clamped RT task is RUNNABLE. Are you worried that running RT on a lower freq could have side effects on the estimated busy time the CPU ? I also still don't completely get why you say it could be useful to "set the min cap to 0 for RT if you want" IMO this will be an even bigger difference wrt mainline, since the RT tasks will never have a granted minimum freq but just whatever utilization we measure for them. -- #include Patrick Bellasi