Received: by 10.192.165.156 with SMTP id m28csp1013149imm; Wed, 18 Apr 2018 02:24:58 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/bJ3p1EbNmOeyWRlQyviyv7Cc4Ude3mlonWpfuqQ2255ewKqfR21QXz+vZyGcCCR/dKIHB X-Received: by 10.99.111.200 with SMTP id k191mr1152563pgc.330.1524043498084; Wed, 18 Apr 2018 02:24:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524043498; cv=none; d=google.com; s=arc-20160816; b=PWAIjUJ4beecKI6vgNxzV3ttHahvA5rz1PfNynu0EkBZu4kOOEO1s0TxJR7lEJ9DgK ShOAnmUWxBUJe/13N7UTJ95vsYwtuMQpSoyhJBs2ynrS2c6yv/POWsVD/fZgGn2B67QB 4SBiEGMmIITc/u7Nay41GwkM+M3uABLCJtBas0/5LIb6VmACGap6TadDiUuKM6Zw8a+3 1CtLMxqFi2/2S2ycAkLaNGKC3x7Z4UtxsVTNdSKXUyAOMflnxRw5CnrD4uBtPs4CGatA t9rIuCRz3Y4jq4U/iorq5f7E1MfkUaWErk1nDgmGDQlYJFbeef5KRrBV/WwjamFgKKi7 VL/w== 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:dkim-signature:arc-authentication-results; bh=awxdJhR98ZM6kxnQU55R+Y1y1SxZ0+JMvUh7dthiwFU=; b=GHkl16A8FWomS06FWZvWEWGJbFdyyoZgSXu2vnUS5qGk7749BM0mDJrOn+LZ0B7jrn PMhOo04nJgAHa1jWzRYtNGpLyBxuddCDAPL7k+d27o5dE/QPP6HLhdxAImXu62cjIHlm Cwj5rbo2OxEUH/siEr85DSPgTnxTBwKtmmZ6weqSBuxYzIUq2xn+FUGhM5But8aDRX2y nlvB01KxnowemAwK9+DHIxagdB0DjsZ0eNUgKzXgaBaTQl0AfcSql7mDjsKG2/WakQvM EnpPmLApjYtV4swxtBUydQ/prIh6i+dHNFNT5HzviLw+sEhW8+58R73el1zrSkhsGZQI d5tg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ife+0oK2; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c3-v6si869125pld.545.2018.04.18.02.24.44; Wed, 18 Apr 2018 02:24:58 -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; dkim=pass header.i=@linaro.org header.s=google header.b=ife+0oK2; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753333AbeDRJX3 (ORCPT + 99 others); Wed, 18 Apr 2018 05:23:29 -0400 Received: from mail-pl0-f68.google.com ([209.85.160.68]:41602 "EHLO mail-pl0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753239AbeDRJX2 (ORCPT ); Wed, 18 Apr 2018 05:23:28 -0400 Received: by mail-pl0-f68.google.com with SMTP id bj1-v6so757727plb.8 for ; Wed, 18 Apr 2018 02:23:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=awxdJhR98ZM6kxnQU55R+Y1y1SxZ0+JMvUh7dthiwFU=; b=ife+0oK2PagL7A2Atc/Qe+iip1Ppa9InE+39B6bAUKKnw+i1dNQuDalBluadhN88cG Ic9seZZTNrVx8zPlRFrVtbdwOLVrKFEgK4MPmlqLAOg03mZoyNJowJINal8XpWYOBs8Q WdmDyNFBB8RwP6r9MiGZBma0NaX61700+9e00= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=awxdJhR98ZM6kxnQU55R+Y1y1SxZ0+JMvUh7dthiwFU=; b=m6i5m7k5R9lYmJ3R0L3R8ShTrKO2iXXyHK4dAS5mYnlu3FSlNAYtwyXXjYWE4yzhIU hDR1AsmRy+jT6h1V7M3PVDeCeEIhd2UCenO8cDYEHGxWSKoHertU5CNIqxkX+2bqL06x jTRWYrF8tBjEvox5zcR0vRxbU9P0ySy6tBE/Pq3ROhDX8e1DGXgvQ9VbdgvTmnlcetob +0wKWG6TWEM+Ypb6RkS7Wjl6dhePZdfwO3/ojY6GMdtshwnzMK6h4GEmKpnw90+1OUfk Gap93PNyppbYxBJeSgEdlggmDtqOo6VQp9rRrN2Z6NgiWyxt6cSCUO7A8Demv+fZsN6V BACQ== X-Gm-Message-State: ALQs6tBBjvpGunYvyPGQtsY/56ivycfjJalMidJIBt8xxikUIS+CHrFn hqRkPS4NjFMNBXwaLPI35M9f/w== X-Received: by 2002:a17:902:aa46:: with SMTP id c6-v6mr1341390plr.154.1524043407844; Wed, 18 Apr 2018 02:23:27 -0700 (PDT) Received: from leoy-ThinkPad-X240s (li1168-94.members.linode.com. [45.79.69.94]) by smtp.gmail.com with ESMTPSA id q67sm2580402pfg.39.2018.04.18.02.23.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Apr 2018 02:23:26 -0700 (PDT) Date: Wed, 18 Apr 2018 17:23:16 +0800 From: Leo Yan To: Dietmar Eggemann Cc: linux-kernel@vger.kernel.org, Peter Zijlstra , Quentin Perret , Thara Gopinath , linux-pm@vger.kernel.org, Morten Rasmussen , Chris Redpath , Patrick Bellasi , Valentin Schneider , "Rafael J . Wysocki" , Greg Kroah-Hartman , Vincent Guittot , Viresh Kumar , Todd Kjos , Joel Fernandes , Juri Lelli , Steve Muckle , Eduardo Valentin Subject: Re: [RFC PATCH v2 4/6] sched/fair: Introduce an energy estimation helper function Message-ID: <20180418092316.GB15682@leoy-ThinkPad-X240s> References: <20180406153607.17815-1-dietmar.eggemann@arm.com> <20180406153607.17815-5-dietmar.eggemann@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180406153607.17815-5-dietmar.eggemann@arm.com> 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 Fri, Apr 06, 2018 at 04:36:05PM +0100, Dietmar Eggemann wrote: [...] > +/* > + * Estimates the system level energy assuming that p wakes-up on dst_cpu. > + * > + * compute_energy() is safe to call only if an energy model is available for > + * the platform, which is when sched_energy_enabled() is true. > + */ > +static unsigned long compute_energy(struct task_struct *p, int dst_cpu) > +{ > + unsigned long util, max_util, sum_util; > + struct capacity_state *cs; > + unsigned long energy = 0; > + struct freq_domain *fd; > + int cpu; > + > + for_each_freq_domain(fd) { > + max_util = sum_util = 0; > + for_each_cpu_and(cpu, freq_domain_span(fd), cpu_online_mask) { > + util = cpu_util_next(cpu, p, dst_cpu); > + util += cpu_util_dl(cpu_rq(cpu)); > + max_util = max(util, max_util); > + sum_util += util; > + } > + > + /* > + * Here we assume that the capacity states of CPUs belonging to > + * the same frequency domains are shared. Hence, we look at the > + * capacity state of the first CPU and re-use it for all. > + */ > + cpu = cpumask_first(freq_domain_span(fd)); > + cs = find_cap_state(cpu, max_util); > + energy += cs->power * sum_util / cs->cap; I am a bit worry about the resolution issue, especially when the capacity value is a quite high value and sum_util is a minor value. > + } > + > + return energy; > +}