Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp497568ybv; Thu, 13 Feb 2020 04:32:15 -0800 (PST) X-Google-Smtp-Source: APXvYqxXnRiVDKz6Qb9G0iF+G7AJKinAxP2LQKOfyMuPNcZM1DfdeWcCGBOt5AVnks/tdGVxf0mp X-Received: by 2002:a9d:7a47:: with SMTP id z7mr13525111otm.179.1581597135075; Thu, 13 Feb 2020 04:32:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581597135; cv=none; d=google.com; s=arc-20160816; b=spB7hGOrokvy2WfB64msMqd5PMxd5V4iv/8Pw2utptPNS+rmyuPPoIoms3DCBQVTo9 nYoOmLmkYO0/xG19u9HH1KA+Gjm6rta7cQOx+xdXdTwFZOCWaC7YqmbYCixUGYhAq6ix O97ghoW23xwU6wduPSaa/k+PvWifCtj7tiJ374b0S8rlFOULldCoZc5dhdTM5/lfAMx1 ldXMVjD8Aje6EFHTNi2VcJs48F6+PNcHyXDycletJt78+yCFXNu3S8MWFh//UtBHL8uu 1iSmVeZyoR/CHFWhobGWAs7xETAAZ/hD5ZZtYais6q4ElepEGfa9WaeIZKVOfSeLOZW7 Wzbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=91Du8YsM0/9IzYNh4jnrkOUwL/byVUy2Gt9fOKH3nc0=; b=oKliyQfsQGEm+bU5N4BqkJzq/uVsJphT8HDXQokjfhVdiTDK0oeORD9NFU+XHVOx4I z+X7Lm8Be8YXlqRNYqg4/R1kK6nf0qqRQ79B5U5cRqkIMmNZUyiARurFkyrJqpW5/zkm w7TKnG226fEPhChYqfu2TUWXFtp2gFCscGBkwEPY0iaj7PpBfNFTRim03EoMwFEQVnKJ bgfpQOXjCBppYPreu/kjKuMayL3oTLZ8HNUCNnoaFc8vX+ZekdYF0rX9BcLxvSJBf8g0 BRAbIlqlmuHFHh7ON7RV7e7Gp5cQ5L5zBH0erdtMU0XDp24HmZYL2Wguoe6EQ4gIM6EU XcAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=N9bYgcsD; 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 v22si1081900oia.30.2020.02.13.04.32.02; Thu, 13 Feb 2020 04:32:15 -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; dkim=pass header.i=@linaro.org header.s=google header.b=N9bYgcsD; 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 S1729903AbgBMMb1 (ORCPT + 99 others); Thu, 13 Feb 2020 07:31:27 -0500 Received: from mail-vs1-f67.google.com ([209.85.217.67]:40471 "EHLO mail-vs1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729531AbgBMMb0 (ORCPT ); Thu, 13 Feb 2020 07:31:26 -0500 Received: by mail-vs1-f67.google.com with SMTP id c18so3439161vsq.7 for ; Thu, 13 Feb 2020 04:31:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=91Du8YsM0/9IzYNh4jnrkOUwL/byVUy2Gt9fOKH3nc0=; b=N9bYgcsDB8jM1fgLYqR6Z3vmQtHMF7tkw0A9ecbCMS4L3hhp+8fnIXWiDMILlNLz+6 D1d+QqfP10dE9KVQGkF7CVRz3gLVCHQl5MNdmIyrdwAcnhzvY2M/zo/x/1RoXeadgqiL p6S3q2Lu/pjM673J2MUBmBNANlLC2wYWg9qV+jOJX0AlBs7zp8m+LA7H4wRfbTke/bZ6 QY7JGVMLNjJE82jE4vKX2jkRL/7fR1qyjhl8zdudX4EoNXPupTAUofEfQISiSERddNoI TgQNwDBShfqSEnzZaITSflsSB7X54LbhZpSDpFbH0UKSPYb06naufDB+YzNVIrodJJ9j 1OYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=91Du8YsM0/9IzYNh4jnrkOUwL/byVUy2Gt9fOKH3nc0=; b=DbaaLnrO9sPMvSLAZQXlN8kpuUgKdLEIWZOQIwl35/6caYB6308YWkwU/yrN+a3k+C /nET8vskGtxqj+JtdbxikkV/U+SHiim32qQf74qeyA5SMBdyZGUN29qSv5Y/QxxG6tSk GgIvZbEimDvc3R8kccz5uIyNABwpFYdVOy8BHpG8QInYnmMQKjKeSJPLRiBVWV++SLb1 +KMfAiLxJg6afb6Fp82eKX2ZSiOo1ngFJDNcN458noWx4ATd3E76HveZKv3+0vtkDq35 xb3nRMeI4S4gb1GDrf+xWLmp84+HsXcJkk9xw/nwHrzyCrEDLEEwPWOXjSGHT68qMF/x T40g== X-Gm-Message-State: APjAAAWrPzFR3zdmugWdHavA0WnCMU0RiEwlOY543GCs0xGD+Skr+7dV K3211yOBeoT5U3hMpozABgwjVcoFBopwWzGcTd6mMQ== X-Received: by 2002:a05:6102:535:: with SMTP id m21mr1783762vsa.95.1581597085131; Thu, 13 Feb 2020 04:31:25 -0800 (PST) MIME-Version: 1.0 References: <1579031859-18692-1-git-send-email-thara.gopinath@linaro.org> <1579031859-18692-2-git-send-email-thara.gopinath@linaro.org> In-Reply-To: From: Amit Kucheria Date: Thu, 13 Feb 2020 18:01:14 +0530 Message-ID: Subject: Re: [Patch v8 1/7] sched/pelt: Add support to track thermal pressure To: Thara Gopinath Cc: Ingo Molnar , Peter Zijlstra , ionela.voinescu@arm.com, Vincent Guittot , Dietmar Eggemann , Zhang Rui , qperret@google.com, Daniel Lezcano , Viresh Kumar , LKML , Amit Daniel Kachhap , Javi Merino Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 13, 2020 at 5:33 PM Amit Kucheria wrote: > > On Wed, Jan 15, 2020 at 1:27 AM Thara Gopinath > wrote: > > > > Extrapolating on the existing framework to track rt/dl utilization using > > pelt signals, add a similar mechanism to track thermal pressure. The > > difference here from rt/dl utilization tracking is that, instead of > > tracking time spent by a cpu running a rt/dl task through util_avg, the > > average thermal pressure is tracked through load_avg. This is because > > thermal pressure signal is weighted "delta" capacity and is not > > binary(util_avg is binary). "delta capacity" here means delta between the > > actual capacity of a cpu and the decreased capacity a cpu due to a thermal > > event. > > > > In order to track average thermal pressure, a new sched_avg variable > > avg_thermal is introduced. Function update_thermal_load_avg can be called > > to do the periodic bookkeeping (accumulate, decay and average) of the > > thermal pressure. > > > > Signed-off-by: Thara Gopinath > > Reviewed-by: Vincent Guittot > > --- > > > > v6->v7: > > - Added CONFIG_HAVE_SCHED_THERMAL_PRESSURE to stub out > > update_thermal_load_avg in unsupported architectures as per > > review comments from Peter, Dietmar and Quentin. > > - Updated comment for update_thermal_load_avg as per review > > comments from Peter and Dietmar. > > v7->v8: > > - Fixed typo in defining update_thermal_load_avg which was > > causing build errors (reported by kbuild test report) > > > > include/trace/events/sched.h | 4 ++++ > > init/Kconfig | 4 ++++ > > kernel/sched/pelt.c | 31 +++++++++++++++++++++++++++++++ > > kernel/sched/pelt.h | 16 ++++++++++++++++ > > kernel/sched/sched.h | 1 + > > 5 files changed, 56 insertions(+) > > > > diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h > > index 420e80e..a8fb667 100644 > > --- a/include/trace/events/sched.h > > +++ b/include/trace/events/sched.h > > @@ -613,6 +613,10 @@ DECLARE_TRACE(pelt_dl_tp, > > TP_PROTO(struct rq *rq), > > TP_ARGS(rq)); > > > > +DECLARE_TRACE(pelt_thermal_tp, > > + TP_PROTO(struct rq *rq), > > + TP_ARGS(rq)); > > + > > DECLARE_TRACE(pelt_irq_tp, > > TP_PROTO(struct rq *rq), > > TP_ARGS(rq)); > > diff --git a/init/Kconfig b/init/Kconfig > > index f6a4a91..c16ea88 100644 > > --- a/init/Kconfig > > +++ b/init/Kconfig > > @@ -450,6 +450,10 @@ config HAVE_SCHED_AVG_IRQ > > depends on IRQ_TIME_ACCOUNTING || PARAVIRT_TIME_ACCOUNTING > > depends on SMP > > > > +config HAVE_SCHED_THERMAL_PRESSURE > > + bool "Enable periodic averaging of thermal pressure" > > + depends on SMP > > + > > config BSD_PROCESS_ACCT > > bool "BSD Process Accounting" > > depends on MULTIUSER > > diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c > > index bd006b7..5d1fbf0 100644 > > --- a/kernel/sched/pelt.c > > +++ b/kernel/sched/pelt.c > > @@ -367,6 +367,37 @@ int update_dl_rq_load_avg(u64 now, struct rq *rq, int running) > > return 0; > > } > > > > +#ifdef CONFIG_HAVE_SCHED_THERMAL_PRESSURE > > +/* > > + * thermal: > > + * > > + * load_sum = \Sum se->avg.load_sum but se->avg.load_sum is not tracked > > + * > > + * util_avg and runnable_load_avg are not supported and meaningless. > > + * > > + * Unlike rt/dl utilization tracking that track time spent by a cpu > > + * running a rt/dl task through util_avg, the average thermal pressure is > > + * tracked through load_avg. This is because thermal pressure signal is > > + * weighted "delta" capacity and is not binary(util_avg is binary). "delta > > May I suggest a slight rewording here and in the commit description, > > This is because the thermal pressure signal is weighted "delta" > capacity unlike util_avg which is binary. > > It would also help, if you expanded on what you mean by binary in the > commit description and how the delta capacity is weighted. > > > + * capacity" here means delta between the actual capacity of a cpu and the > > + * decreased capacity a cpu due to a thermal event. > > This could be shortened to: > > Delta capacity of cpu = Actual capacity - Decreased capacity due to > thermal event > Please ignore. I should have sent this against v9, it was languishing in my mailbox since v8 and I sent this out by mistake.