Received: by 2002:ac0:8c8e:0:0:0:0:0 with SMTP id r14csp981289ima; Wed, 6 Feb 2019 11:35:14 -0800 (PST) X-Google-Smtp-Source: AHgI3IbLga5tezZB3ELk6KCgQp/bIBfpwa1Kso39UcNVDaLmmcC8eQvD7xGg0E01/Nj/Kj6pvRxK X-Received: by 2002:a62:b9a:: with SMTP id 26mr12196202pfl.196.1549481714066; Wed, 06 Feb 2019 11:35:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549481714; cv=none; d=google.com; s=arc-20160816; b=n1/QNVoHV2B7aIJbqGNvYuto7J6TFcdlpMOH63vxJmWLxXUDWYRkmgQ8QOTuL9QnIh bjMrYkJDnVHjt/8E+bsMh1LrH5XvKb1zq2uyyFLwVjqpiOmUav0A/WU9r/obX2CI4+E+ gNXeoRHAM+jUpNa5Lh/dlPemNwhqUiJh/ZZzAr9KWmhJhhBsNOO89+ctZVoY/6vGp0t1 jgqoIdDB1H4XWdjIJY/qWKSYpkStDEboRmLXJbc03r0CFTz2QiqSfS/nPw0htUvctbTp pxKUgZn23n/whFCJF6PW4msBTkh97pdDzxEN6S2tH2vJgRMUmTByIknodFSKJ+9Dg3SB oMcQ== 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-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=E4rlGPsemzimm83Oy1pMjkFO/GjD1tiIiWOtIFgZnMY=; b=Q+hg9LFLj1L6Y/7a7bx2nQSAWiMu/mSVnBt5p4XoUPAumRBvsy9i0aOwCAGsEzi/2x eYeTg386K+zIs3udoSMdtlQ/SRp2pG6liwfeT3/y/bdEkkyZNS2FhOIejeXEPXXq1vW0 rX7l2okC8x1yFpiBH8/2CEv4Co/h5lx7tKyCGFLc06E31sGtvH+WA3PXdLGXb6Tl7QGb MxhT/eoBQM8GntcMoNv+s2KvVGZrDpCGYGmebR5XR1CLEqkKxDru6kVBArPiz8dcdK56 gM/xbFDlpkb/C/jXji0p9fZw+Oy+WfmfrnqFE5sohSA0BSPZl/6nSAuI/n2ZEppWcv/4 CJaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=MlE6awYG; 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=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d66si7049489pfg.36.2019.02.06.11.34.58; Wed, 06 Feb 2019 11:35:14 -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=@chromium.org header.s=google header.b=MlE6awYG; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726934AbfBFTeo (ORCPT + 99 others); Wed, 6 Feb 2019 14:34:44 -0500 Received: from mail-pg1-f196.google.com ([209.85.215.196]:37113 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726708AbfBFTeo (ORCPT ); Wed, 6 Feb 2019 14:34:44 -0500 Received: by mail-pg1-f196.google.com with SMTP id c25so3346796pgb.4 for ; Wed, 06 Feb 2019 11:34:43 -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 :user-agent; bh=E4rlGPsemzimm83Oy1pMjkFO/GjD1tiIiWOtIFgZnMY=; b=MlE6awYGU0hMb6wFObsCBhZiAHGQH8HtNAo+2yML80lx/YyyR8/xDcxvSOyIHNSAFm UmTxkZiPZpTfhZRU33jfkrPoWCrk1Z+19zxVnwmuaeUQcaNrLY1NqIAxIWz4W1oJ+oG8 xAUpcWl6A6j6hqaq/POv94B9mY1uycM/77wZo= 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:content-transfer-encoding :in-reply-to:user-agent; bh=E4rlGPsemzimm83Oy1pMjkFO/GjD1tiIiWOtIFgZnMY=; b=P1s90jGE5d09K1EdgPARpw1XfrtNiONt7xWaug03yHBmIldl4zY9hzT3xldEe+qixb gwGHzjUrY+uqJ6YAIF/TzacIwnT3ot2H0FuuyLUlX8BtFgUdVVZVgArjQ4d6wYSUUQga YEwGEGliz7+4lxT3kukY/dguytHFkn/I9Jl1OArfTtjjLWVb+ZgH7v4dIZtZxK8+2Y57 U85yb44mfsXi2PMiAfZWEh/XeYlj9l1bA++G71xG60m7zKPrrdqlesDSCEz/FRp7uZPm G3wVwwtrLniwmaaJqF62dp2+WL4/BluixHXluvtmXqV7FoLf3D/c8ppqo9LQjpeZJxt5 LKpg== X-Gm-Message-State: AHQUAubjMbvkP9JqbputrqcYFRhPNkXHCdD8XDZ1EIhnAlDSoaDgmxPr 8qQHU3WRFI3aBPLWRk20AW8tPGBgmxw= X-Received: by 2002:a62:3241:: with SMTP id y62mr12107719pfy.178.1549481683219; Wed, 06 Feb 2019 11:34:43 -0800 (PST) Received: from localhost ([2620:15c:202:1:75a:3f6e:21d:9374]) by smtp.gmail.com with ESMTPSA id p12sm6644188pfj.81.2019.02.06.11.34.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 06 Feb 2019 11:34:42 -0800 (PST) Date: Wed, 6 Feb 2019 11:34:41 -0800 From: Matthias Kaehlcke To: Amit Kucheria Cc: Linux Kernel Mailing List , linux-arm-msm , Bjorn Andersson , Eduardo Valentin , Andy Gross , Taniya Das , Stephen Boyd , Doug Anderson , David Brown , Rob Herring , Mark Rutland , DTML Subject: Re: [PATCH v3 1/1] arm64: dts: sdm845: wireup the thermal trip points to cpufreq Message-ID: <20190206193441.GJ117604@google.com> References: <6a21a9ee7663e1b32d8ea81ac5e51d187aed25fb.1548093127.git.amit.kucheria@linaro.org> <20190123021251.GJ261387@google.com> <20190124233528.GA81583@google.com> <20190125222051.GF81583@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 06, 2019 at 04:05:41PM +0530, Amit Kucheria wrote: > On Sat, Jan 26, 2019 at 3:50 AM Matthias Kaehlcke wrote: > > > > > trips { > > > > > - cpu_alert0: trip0 { > > > > > + cpu0_alert1: trip-point@0 { > > > > > temperature = <75000>; > > > > > > > > In my observations a 'switch on/threshold' temperature of 75 degrees > > > > leads to aggressive throttling with IPA when the temperature is above > > > > this threshold: > > > > > > > > [ 716.760804] cpu_cooling_ratelimit: 31 callbacks suppressed > > > > [ 716.760836] cpu cpu4: Cooling state set to 10. New max freq = 1920000 > > > > [ 716.773390] power_allocator_ratelimit: 15 callbacks suppressed > > > > [ 716.773405] thermal thermal_zone5: Controlling power: control_temp=95000 last_temp=73500, curr_temp=75200 total_requested_power=39025 total_granted_power=18654 > > > > [ 749.609336] cpu_cooling_ratelimit: 45 callbacks suppressed > > > > [ 749.609371] cpu cpu4: Cooling state set to 11. New max freq = 1843200 > > > > [ 749.624300] power_allocator_ratelimit: 24 callbacks suppressed > > > > [ 749.624323] thermal thermal_zone5: Controlling power: control_temp=95000 last_temp=70800, curr_temp=77200 total_requested_power=40136 total_granted_power=17402 > > > > [ 780.152633] cpu_cooling_ratelimit: 41 callbacks suppressed > > > > [ 780.152666] cpu cpu4: Cooling state set to 11. New max freq = 1843200 > > > > [ 780.165247] power_allocator_ratelimit: 21 callbacks suppressed > > > > [ 780.165261] thermal thermal_zone5: Controlling power: control_temp=95000 last_temp=64800, curr_temp=76900 total_requested_power=39719 total_granted_power=1759 > > > > > > > > (the logs come from a local patch in our tree: > > > > https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ec1c501a8093fed44a6697a5913ef2765f518e1f) > > > > > > > > At this point I don't have a clear idea what would be a reasonable > > > > value for the 'switch on/threshold' temperature, but probably it > > > > should to be higher than 75 degrees, at least with IPA. If there is > > > > no reasonable common configuration for different thermal governors I > > > > guess we'll have to target a commonly used governor and systems > > > > using other 'incompatible' governors need to override the config in > > > > their .dtsi. > > > > > Thanks for the elaborate testing and for sharing the numbers. This is > very useful information. > > > > On my system I don't see a significant delta in core temperatures for > > > 'threshold' temperatures of 80, 85 or 90°C. However Dhrystone > > > performance goes up by ~8% when changing the trip point from 80 to > > > 85°C. For a switch from 85 to 90°C I see a ~2% performance delta. For > > > all trip points the average core temperatures are ~80°C (silver) and > > > ~85°C (gold). Interestingly I observed the highest average > > > temperatures with the trip point at 80°C (repeated measurements were > > > taken for different temperatures). > > > > > > Supposedly LMH throttling is disabled in the firmware I used for > > > these tests, however data suggests that it is still active > > > (temperature doesn't rise beyond 95°C, even without throttling in > > > Linux; Dhrystone performance drops when raising the temperature beyond > > > 95°C with a heat gun. I will do some more testing when I get my hands > > > on a FW that effectively disables LMH (or raises the threshold to > > > something like 105°C). > > > > > > From the data collected so far I'd suggest a 'threshold' temperature > > > of 90°C or if that seems to high 85°C. Behavior might be different > > > with other thermal governors or without LMH throttling.. > > > > Some more data from measurements with different trips points, for the > > IPA and the Fair Share governors, LMH throttling was enabled: > > > > IPA > > Dhrystone Temp Silver Temp Gold > > 75 6M 78.4 84.9 > > 80 6.21M 81.4 89.8 > > 85 6.74M 81.7 88.2 > > 90 6.88M 79.4 84.6 > > > > Fair Share > > Dhrystone Temp Silver Temp Gold > > 75 6.63M 80.1 88.5 > > 80 6.71M 80.1 88.5 > > 85 6.77M 81.1 87.8 > > 90 7.12M 81.2 87.8 > > Interesting that you get more MIPs out of fair share governor when > compared to IPA across the board. What devices were providing energy > cost information (dynamic-power-coefficient) to the IPA engine? Just > CPU and GPU? Can you point me to those patches in gerrit? Only the CPUs provide energy cost information, the GPU isn't fully hooked up in our tree yet. The cause of the delta could be that for temperatures < 'target' Fair Share only uses the performance states specified in 'threshold' for throttling (currently only the boost frequency), while IPA may use the full range of states of the 'target' trip point. You can find the patches/configuration here: https://chromium.googlesource.com/chromiumos/third_party/kernel/+log/refs/sandbox/dianders/190130-wip-tree arch/arm64/boot/dts/qcom/sdm845.dtsi arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi > > Within this range the 'threshold' temperature doesn't seem to have a > > large impact on the average CPU temperature. There is a bit of > > fluctuation between individual measurements, I wouldn't be surprised > > if the outliers of Temp Gold for 75 and 90°C converged more with the > > other values with some more measurements. > > > > I learned how to effectively disable LMH throttling, however with that > > it was fairly easy to have the CPUs overheat, even with throttling in > > Linux. If it is feasible at all to run with LMH disabled some more > > actions will be needed (e.g. attaching a heatsink or interrupt support > > for thermal sensors instead of polling, ...). > > Given that LMH kicks in at 95 and IPA manages to maintain temperatures > in the ballpark of 80-90 regardless of the trip point value, I agree > that we should move the 1st trip point to 90. This will give maximum > performance. So in "threshold" and "target" terms 90 becomes the > threshold. And since LMH kicks in at 95, I've left it as the target > trip. > > These should be sane defaults for upstream and any device can override > those numbers in their board file. Sounds good, thanks! FYI, since I mentioned this earlier: a small heatsink on the SoC makes a huge difference, with that I didn't encounter thermal shutdowns during my (limited) tests with LMH disabled. Temperatures were only slightly higher than with LMH throttling, so it might be feasible to raise the LMH threshold and only use it as last resort. Cheers Matthias