Received: by 2002:a05:6a10:7420:0:0:0:0 with SMTP id hk32csp522680pxb; Thu, 17 Feb 2022 08:57:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJzrPSkS0sbqO8Dy13PYnEg7A8EGJ5pk6RXng6lxl/5NAFOMj5XiAL34bsO2Tczt/u9TUh6X X-Received: by 2002:aa7:d2c8:0:b0:410:e248:48eb with SMTP id k8-20020aa7d2c8000000b00410e24848ebmr3553175edr.325.1645117034191; Thu, 17 Feb 2022 08:57:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645117034; cv=none; d=google.com; s=arc-20160816; b=d/6aLxzUdRk8EEBN+i1lB2W7QxZcyjxkY8rNabhMSN6Us0OvXwiXxABJHTu7q8hiG1 WzweXGOAYLknX4wy+mq9Tkv0w6M7TKiBXK7PhKhUbmOHY6XvdCbJ2FK15otmh9UzFGsx atzG5bGA3ZoCVQKaXwbIyB9Ph9cKCO7/e4L0lk9oUgPiF8kyxkbm0xmOe0qaWwaouNhu DDTIEMnCVZSFsnGvUNeZPfbTN6C6xSyCbjYH2uQ6aeD7O0itc8Tmhur9wvAIgNHAq8SG FHr6dyEEHpCGl9PqXAQNNBWjXgIsVqIOmooYakuEHz8CSplxP0787JO1ByYv+DzU4A2o J9RQ== 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-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=+KRTHDgfcLxZHAAxA8uhVwTK5EGnm5foo2A70RTf8f0=; b=enU3/7kNzImuYNmA4eXSi4W/rt734algZe8TOTEMUMkprKKhEjUiUFPLY7TnznkNb5 YnGntAkKQJQgWyUABRDw4uvSuLAoOU2ab92IOFHR7VPSWkUWQTfSrxnWWWpTSAmHcm/G 591P4s7eDMUOU/I3nXzwBHbBsYU+etnvlll5VEajEg2gbncGbQcvQ8TS+b/PE353Vm+E YpMTqOgWSdsSt/gmFJSoXNlaoUI0A+Lao6lke2dj0i+NHOlspJ+4NK0ue91GhkvRKyXy HH8ja1XlhadKVKIVrqfakhNdp7P0GQjcWrOE42VzDZH05J2AJMpmmYWly2Cf10vLS/z0 KkuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=Q4ZIwZz2; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hb7si2250069ejc.437.2022.02.17.08.56.50; Thu, 17 Feb 2022 08:57:14 -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; dkim=pass header.i=@chromium.org header.s=google header.b=Q4ZIwZz2; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243418AbiBQQqn (ORCPT + 99 others); Thu, 17 Feb 2022 11:46:43 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:33444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239915AbiBQQqk (ORCPT ); Thu, 17 Feb 2022 11:46:40 -0500 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EA04A284D21 for ; Thu, 17 Feb 2022 08:46:24 -0800 (PST) Received: by mail-pf1-x42f.google.com with SMTP id y11so135953pfi.11 for ; Thu, 17 Feb 2022 08:46:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=+KRTHDgfcLxZHAAxA8uhVwTK5EGnm5foo2A70RTf8f0=; b=Q4ZIwZz2XqP1XIrvhBpsWXI8zUbtuenhNjB5NwVQ4vqH+KKhZfiBSSPpzDd0LlFsCk X9mSzG7Sd+5uo1i9BKtndbDxr/dbHOzJLDrQELtOiaew3Os7sik4trOr9wVAHWqL6KkV 5ki99hZXCF/+hnYemy0jz568Q5s5Bupx16Zw4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=+KRTHDgfcLxZHAAxA8uhVwTK5EGnm5foo2A70RTf8f0=; b=JVHRXtZpHD4pawuuvjYw6RtKo2TdtRgPOu+NVU5Mv+6wpLwbNmWWYRvRaCj+7r9XFv H7XkDgcqcasItKQnNIchTGmI6c541h1QEdxUpG82TPiwTDPmUMvFeZdRZj8+iFzoDIDA 2uUgze9YlBlXoWYEsYQdi9a3rXuIENGiklicXR6PX8sH+FBYDpESx9aH9CHltg0btH3y CrtiEBJMIwb0ZXzL7tQsQihSowQ1dZnMLAvadamkgrotgUB+EIxVDgSgMWt9Rd9+Me78 dj7TX/BCPXdcl9rJlWugn7OA/QlhH/fTZl0vG90Iy+24Dgj6AoVj6w3MnwyF1NKb0ZH+ 6uXg== X-Gm-Message-State: AOAM5319XX6vZjxgJyzBrmebWsf6ID9PawuqY8rufTuUYd1cdK8P2dJP kxvg83Rx5yR+pI3fZpNCqdLGow== X-Received: by 2002:a63:b:0:b0:372:a1d2:6516 with SMTP id 11-20020a63000b000000b00372a1d26516mr3008090pga.587.1645116384353; Thu, 17 Feb 2022 08:46:24 -0800 (PST) Received: from localhost ([2620:15c:202:201:20:e0d2:8c14:1e68]) by smtp.gmail.com with UTF8SMTPSA id t14sm9004788pgo.19.2022.02.17.08.46.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Feb 2022 08:46:24 -0800 (PST) Date: Thu, 17 Feb 2022 08:46:22 -0800 From: Matthias Kaehlcke To: Lukasz Luba Cc: Daniel Lezcano , 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 , Doug Anderson Subject: Re: [PATCH 1/2] thermal: cooling: Check Energy Model type in cpufreq_cooling and devfreq_cooling Message-ID: References: <4a7d4e94-1461-5bac-5798-29998af9793a@arm.com> <7c059f4f-7439-0cad-c398-96dbde4e49c1@linaro.org> <5b8ca53e-3595-85fd-5ae9-a5e8285e8513@arm.com> <53bc13ca-998f-ff83-d9f7-9a83d35b24fd@linaro.org> <97ecc29b-13a9-fa15-4e88-21c8612ebb7f@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <97ecc29b-13a9-fa15-4e88-21c8612ebb7f@arm.com> X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, 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 On Thu, Feb 17, 2022 at 12:11:27PM +0000, Lukasz Luba wrote: > > > On 2/17/22 11:28 AM, Daniel Lezcano wrote: > > On 17/02/2022 11:47, Lukasz Luba wrote: > > > 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. > > > > Why not make it more generic and replace the frequency by a performance > > index, so it can be used by any kind of perf limiter? > > For that DT array, yes, it can be an index, so effectively it could be > a simple 1d array. > > something like: > > msm_gpu_energy_model: msm-gpu-energy-model { > compatible = "energy-model" > /* Values are sorted micro-Watts which correspond to each OPP > or performance state. The total amount of them must match > number of OPPs. */ > power-microwatt = <100000>, > <230000>, > <380000>, > <600000>; > }; IIUC for the QCOM GPU the voltages/power consumption per OPP aren't fixed but can vary between different SoCs of the same model. If the ranges aren't too wide it might still be suitable to have a table with the average power consumption. Another question is whether QCOM would be willing to provide information about the GPU power consumption. For the SC7180 CPUs they only provided bogoWatt numbers. Once boards with a given SoC/GPU are available to the public someone could come up with such a table based on measurements, similar to what Doug did for the SC7180 CPUs (commit 82ea7d411d43f). > then in gpu node instead of having 'dynamic-power-coefficient', > which is useless because voltage is missing, we would have > 'energy-model', like: > > energy-model = <&msm_gpu_energy_model>; > > > If you agree to continue this topic. I will send an RFC so we could > further discuss this idea. This $subject doesn't fit well. > > Thank you again for your feedback Daniel! Thanks Lukasz and Daniel for looking into this! m.