Received: by 2002:a05:6a10:7420:0:0:0:0 with SMTP id hk32csp346588pxb; Thu, 17 Feb 2022 05:33:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJyARYFd4fj+kqou7Rz+BhmZ1BUYGYZFHpUxsg5yDknBhAtPMW3Xo7K9C5sZIS4SDp5HFKHS X-Received: by 2002:a17:902:7285:b0:14d:7f5b:94d0 with SMTP id d5-20020a170902728500b0014d7f5b94d0mr2810470pll.25.1645104802189; Thu, 17 Feb 2022 05:33:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645104802; cv=none; d=google.com; s=arc-20160816; b=VzhWlgWRDGaJkbXYzix8NKztHn9vlmjkOaWGA33J61RNFEYwBRdy+44LZYGcwxEsZn SOIajYYteq5E00Zr7RzpPB3Uk7+8aeXPFg7l0XTJY5Er9aNwY1xeG4aOHub6+6DVA1Lb szZYy5lORzazPdEERIt6ZlyRQ6lZ3RhitYaFYpPhsyZSVp+iMBHTmGBY71zfWCa27Vl7 23bjoK3kjHRRHtQsy3iDGJ4QSGc3ev3Nq7E9xNO16K3JLPyFmScxpsrYLXaQgXVO0FFD ek4OCWv+fMoaBXBIC+MN+ShbztxI4I0fzVY7bcaYT8cmBuZypwNpq8pmBZ0qL7zuFqne 83Nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=cYkbrpa2KlCfJOIY6a0LeflVBAhaJyTHVppIP50bCnw=; b=ZorPsKS+eh/kkxdt9FugQ6r9iEw0XuUQPEMvdZuGOpQmlKD22dZOJbhEhGzVheoca5 tIDxmAWw8zE6BXgzXZfdZ9QP2lmTM0S73SKcMZYfKflu4Q3xHDGhhDCjdDc9ZKn/FGaO hLvA0tcf+B0dY394P6cSdQAmahrfXWs1fRxic2khp3yMUna75SOzc8R4bmUPLchstJqf YsFqOKn3pPcTLSN48tkIwppcfLUgcDLvvBS0nFpNcB2tb4zTGS1jhkZ6rIyflUxKP80h FffOcirY2YhZFsaWqn32XAfMKfRdTjkCJplgVUYd1CniLRhF6hfLn9oQ4BGOoWsFfnbR mw9g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gn4si820300pjb.77.2022.02.17.05.33.00; Thu, 17 Feb 2022 05:33:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239323AbiBQKsH (ORCPT + 99 others); Thu, 17 Feb 2022 05:48:07 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:38694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233671AbiBQKsF (ORCPT ); Thu, 17 Feb 2022 05:48:05 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 818A229412E; Thu, 17 Feb 2022 02:47:49 -0800 (PST) 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 24854D6E; Thu, 17 Feb 2022 02:47:49 -0800 (PST) Received: from [10.57.17.240] (unknown [10.57.17.240]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C0B5D3F66F; Thu, 17 Feb 2022 02:47:46 -0800 (PST) Subject: Re: [PATCH 1/2] thermal: cooling: Check Energy Model type in cpufreq_cooling and devfreq_cooling To: Daniel Lezcano , Doug Anderson , Matthias Kaehlcke Cc: LKML , Linux PM , amit daniel kachhap , Viresh Kumar , "Rafael J. Wysocki" , Amit Kucheria , Zhang Rui , Dietmar Eggemann , Pierre.Gondois@arm.com, Stephen Boyd , Rajendra Nayak , Bjorn Andersson References: <20220207073036.14901-1-lukasz.luba@arm.com> <20220207073036.14901-2-lukasz.luba@arm.com> <4a7d4e94-1461-5bac-5798-29998af9793a@arm.com> <7c059f4f-7439-0cad-c398-96dbde4e49c1@linaro.org> From: Lukasz Luba Message-ID: <5b8ca53e-3595-85fd-5ae9-a5e8285e8513@arm.com> Date: Thu, 17 Feb 2022 10:47:44 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: <7c059f4f-7439-0cad-c398-96dbde4e49c1@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Daniel, On 2/17/22 10:10 AM, Daniel Lezcano wrote: > On 16/02/2022 18:33, Doug Anderson wrote: >> Hi, >> >> On Wed, Feb 16, 2022 at 7:35 AM Lukasz Luba wrote: >>> >>> Hi Matthias, >>> >>> On 2/9/22 10:17 PM, Matthias Kaehlcke wrote: >>>> On Wed, Feb 09, 2022 at 11:16:36AM +0000, Lukasz Luba wrote: >>>>> >>>>> >>>>> On 2/8/22 5:25 PM, Matthias Kaehlcke wrote: >>>>>> On Tue, Feb 08, 2022 at 09:32:28AM +0000, Lukasz Luba wrote: >>>>>>> >>>>>>> >>> >>> [snip] >>> >>>>>>> Could you point me to those devices please? >>>>>> >>>>>> arch/arm64/boot/dts/qcom/sc7180-trogdor-* >>>>>> >>>>>> Though as per above they shouldn't be impacted by your change, >>>>>> since the >>>>>> CPUs always pretend to use milli-Watts. >>>>>> >>>>>> [skipped some questions/answers since sc7180 isn't actually >>>>>> impacted by >>>>>>     the change] >>>>> >>>>> Thank you Matthias. I will investigate your setup to get better >>>>> understanding. >>>> >>>> Thanks! >>>> >>> >>> I've checked those DT files and related code. >>> As you already said, this patch is safe for them. >>> So we can apply it IMO. >>> >>> >>> -------------Off-topic------------------ >>> Not in $subject comments: >>> >>> AFAICS based on two files which define thermal zones: >>> sc7180-trogdor-homestar.dtsi >>> sc7180-trogdor-coachz.dtsi >>> >>> only the 'big' cores are used as cooling devices in the >>> 'skin_temp_thermal' - the CPU6 and CPU7. >>> >>> I assume you don't want to model at all the power usage >>> from the Little cluster (which is quite big: 6 CPUs), do you? >>> I can see that the Little CPUs have small dyn-power-coeff >>> ~30% of the big and lower max freq, but still might be worth >>> to add them to IPA. You might give them more 'weight', to >>> make sure they receive more power during power split. >>> >>> You also don't have GPU cooling device in that thermal zone. >>> Based on my experience if your GPU is a power hungry one, >>> e.g. 2-4Watts, you might get better results when you model >>> this 'hot' device (which impacts your temp sensor reported value). >> >> I think the two boards you point at (homestar and coachz) are just the >> two that override the default defined in the SoC dtsi file. If you >> look in sc7180.dtsi you'll see 'gpuss1-thermal' which has a cooling >> map. You can also see the cooling maps for the littles. >> >> I guess we don't have a `dynamic-power-coefficient` for the GPU, >> though? Seems like we should, but I haven't dug through all the code >> here... > > The dynamic-power-coefficient is available for OPPs which includes > CPUfreq and devfreq. As the GPU is managed by devfreq, setting the > dynamic-power-coefficient makes the energy model available for it. > > However, the OPPs must define the frequency and the voltage. That is the > case for most platforms except on QCom platform. > > That may not be specified as it uses a frequency index and the hardware > does the voltage change in our back. The QCom cpufreq backend get the > voltage table from a register (or whatever) and completes the voltage > values for the OPPs, thus adding the information which is missing in the > device tree. The energy model can then initializes itself and allows the > usage of the Energy Aware Scheduler. > > However this piece of code is missing for the GPU part. > Thank you for joining the discussion. I don't know about that Qcom GPU voltage information is missing. If the voltage is not available (only the frequencies), there is another way. There is an 'advanced' EM which uses registration function: em_dev_register_perf_domain(). It uses a local driver callback to get power for each found frequency. It has benefit because there is no restriction to 'fit' into the math formula, instead just avg power values can be feed into EM. It's called 'advanced' EM [1]. Now we hit (again) the DT & EM issue (it's an old one, IIRC Morten was proposing from ~2014 this upstream, but EAS wasn't merged back then): where to store these power-freq values, which are then used by the callback. We have the 'dynamic-power-coefficient' in DT, but it has limitations. It would be good to have this simple array attached to the GPU/CPU node. IMHO it meet the requirement of DT, it describes the HW (it would have HZ and Watts values). Doug, Matthias could you have a look at that function and its usage, please [1]? If you guys would support me in this, I would start, with an RFC proposal, a discussion on LKML. [1] https://elixir.bootlin.com/linux/v5.17-rc4/source/Documentation/power/energy-model.rst#L87