Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4237382pxf; Tue, 30 Mar 2021 02:50:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwIu8aheLcOsiDCe4fJ8F0RLLwtzV+9HuRV24lQPXgdIRRUCE6Ye2E+srzD+JSCgPPBgyx4 X-Received: by 2002:a17:907:2d89:: with SMTP id gt9mr32688266ejc.226.1617097841104; Tue, 30 Mar 2021 02:50:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617097841; cv=none; d=google.com; s=arc-20160816; b=XEM9MkD+tjK7TC/7rl6eG0uEKIEaLHQ57YKCHTEs81KCo7IilngOcqvRIBTXrMnWHr Z7dgfzqCAR8VtQ5aGVOT8fvY4Gs9KCPTmsv/Gl82bpZwZdvO+SChI3F30iO79Q3M1wA+ RyNIVf80NWb8END6+35a/o3QN+68J9Trf3zpf2JK8LNxQTF+SJW3kz7Xt8mrfTraNrE3 uYhICr0jfa8RN4AM2u/Zp9voh3NNVhrWVc3WMxU8qd8v9f1QJYER9Sc5SFv0uGuqq5rf HjEQAve0Sz7Pl5j7czWFa9fjab5wGoxKvYDDcFsZMg6mqdRMAy8lqlyzdMAqAwzV+5yu 7xTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=jyeWZx63Re9KiS8wVurTuqgEPIkOl3yZwdtiNQUUJqU=; b=eomrEPKeZe1MPomHcV+Nc78jTkceW34rnfHd9svmorIRIIFEWKLs7RZ0QBTMNKNxfW hEQ3E3CgxY6oK3ZSGT+atBAxmE+sYpSfURDlnMq6GADRUIv4tOXUKvDHfbIQaOxSYeLj uRoMnkQN6r2uewuB43XqPvWozouB5Y4reL7FLq4XlWX9eaVUoeLuMv3C4Tgot8q0n5MZ xvaAuH4VMaruPo/059eQxKDWOg0IZMbUMcffqzxJY/vxXgPuO+MaQtYYKPhTtHHQbJ65 egM7LSUFAH9eRgf11zmNXnjjpK6ud0HcK+JXrJf80cI1M4FN5xnRCdfIhmKi14oV78iw ab3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=SJBQdhgj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y9si15051542edi.0.2021.03.30.02.50.18; Tue, 30 Mar 2021 02:50:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=SJBQdhgj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230415AbhC3Jpz (ORCPT + 99 others); Tue, 30 Mar 2021 05:45:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231313AbhC3Jpl (ORCPT ); Tue, 30 Mar 2021 05:45:41 -0400 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A3869C061574 for ; Tue, 30 Mar 2021 02:45:40 -0700 (PDT) Received: by mail-wr1-x433.google.com with SMTP id v11so15547641wro.7 for ; Tue, 30 Mar 2021 02:45:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=jyeWZx63Re9KiS8wVurTuqgEPIkOl3yZwdtiNQUUJqU=; b=SJBQdhgjAnJToTFR6CjeywJHipkWVO9KZF/bBePjDyUycoy2UQxldKZVEmj4R7aQvI CqJ5qgAkQtljJxDdZ6VQ4HIEe9eJvAMSJ3XfxX1vQ7X2jfX5Ed42cjWvjfH9cOMgUbUp rzyztCalDpOYiqtXXKQ9nFy4jpRUVXn2Mn2ct1VhPNajPtUOxEkNZpHdmJWTyXJ7UE8r +OByxpv8uj5RmVmalEIvwCAZoU7BxNiHcmIN81ldYlKYaVmzjRoy1sPOx0WhRNlvusHn kUtGoiCs2HvCT3+qy3Ryd4Hj/zgbJ12eCie1YIGqabAYW7Pu/jUVIgEmlA+zB7+m9MJP t0ag== 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; bh=jyeWZx63Re9KiS8wVurTuqgEPIkOl3yZwdtiNQUUJqU=; b=FyGO5ACa8WxrI7A5Bk5hAxJQe5ADXn3gwpmzUc1mk5TNlXa7K4CzqRbgyWQKk+DPiu wsM6VFw/RAob0XWv2Ztj2S5XpV8m3OUb1fnMjHiMcRtmYWPRBK3R6wXtxxiijG9sEWuw DHw0tXV0FaOhrypm9si6ivyMf5I3gOK8RvYosRIni/d5CKPtkpbc4HQoPKC9lNxSLVc9 wE3wF0mlJNBY3JVSqCHdWsJgoxlMJa06D8Uc5iK8sN3XzAqQNI/cSRJxnctpgXAs04zc GJJ3r0DQhCIht0wnCa1/SEZ5GCHX0U87PzXoCm0PVKX1K63lMRmyAPlPmJqZ1q0J/Hk6 ThQw== X-Gm-Message-State: AOAM5334E+iQ9NR1d9lQ1/NXD4xXzgFYmxQqEK4I/Q5TVniGUMLuXrQi /XFiHQ3XM22VJ++/ovkglUROOQ== X-Received: by 2002:adf:b355:: with SMTP id k21mr33614643wrd.156.1617097539344; Tue, 30 Mar 2021 02:45:39 -0700 (PDT) Received: from google.com (230.69.233.35.bc.googleusercontent.com. [35.233.69.230]) by smtp.gmail.com with ESMTPSA id a4sm34319167wrx.86.2021.03.30.02.45.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Mar 2021 02:45:39 -0700 (PDT) Date: Tue, 30 Mar 2021 09:45:36 +0000 From: Quentin Perret To: Xuewen Yan Cc: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, linux-kernel@vger.kernel.org, quentin.perret@arm.com, zhang.lyra@gmail.com, xuewyan@foxmail.com Subject: Re: [PATCH] sched/fair: use signed long when compute energy delta in eas Message-ID: References: <20210330052154.26861-1-xuewen.yan94@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210330052154.26861-1-xuewen.yan94@gmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Tuesday 30 Mar 2021 at 13:21:54 (+0800), Xuewen Yan wrote: > From: Xuewen Yan > > now the energy delta compute as follow: > > base_energy_pd = compute_energy(p, -1, pd); > --->Traverse all CPUs in pd > --->em_pd_energy() > ----------------------------------------------------- \ > search for the max_sapre_cap_cpu \ > --------------------------------- search time > cur_delta = compute_energy(p, max_spare_cap_cpu, pd); / > --->Traverse all CPUs in pd / > ---------------------------------------------------- / > --->em_pd_energy() > cur_delta -= base_energy_pd; > > During the search_time, or when calculate the cpu_util in > compute_energy(), there may occurred task dequeue or cpu_util change, > it may cause the cur_energy < base_energy_pd, so the cur_delta > would be negative. But the cur_delta is unsigned long, at this time, > the cur_delta would always bigger than best_delta of last pd. > > Change the vars to signed long. Is that really helping though? Yes you will not overflow, but the decision is still 'wrong' if the util values are not stable for the entire wake-up. I think folks on the Arm side had patches to try and cache the util values upfront, and then use them throughout feec() and compute_energy(), which I think would be a better fix. Dietmar, wdyt? Thanks, Quentin