Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp15486356ybl; Tue, 31 Dec 2019 08:42:19 -0800 (PST) X-Google-Smtp-Source: APXvYqxeNCyZoBRs+DBW20uH8Uyh4x10dWB1pH6K+0jQXYGMtjygK9Uze83MtEc/qnx5jk03ZJqo X-Received: by 2002:a50:ef17:: with SMTP id m23mr76085646eds.106.1577810539643; Tue, 31 Dec 2019 08:42:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577810539; cv=none; d=google.com; s=arc-20160816; b=PrjPV3upVkO/1ij0Ronm/eJivlRTKn3mfhAFQOqU+cCqsW2d3ui2Eda+Q27lSnmFSK AOEtFHWd/cue3DBzMc7Wkc5IvpVZH20y2mO8WYFQIw3lk06qhb4QJV2brJa2y+rDKLxF y86nz7h7mhewUhYV2yjdlyUpfm7G4QOtodQiXIgIXfMgZdbxSoIyi7pkpZeganxPcWWt GrpnK3JtN23cJfbXU7sS+oS4x2MUJ3fbjwB5hTRxdTjoi9i3+NL0ij8b2mYhz7OznFEv y9kk0m1e8ptTi77CJtDFjpTKyrPbbsxYk7BsINhR5ylYAgFjUVVsK5HhoCmECkLTg6JZ Z0ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=9CPdAlrkvhVBt0ftZzHSTUHbiesT3JMv/XrapeaDCaE=; b=Pc1RHmFuLFTIjyztG7RJFmW30jjuVQNfg4K4AieQkGVno93T0YUFjVJLIk+0brEeLE HYCVAOSP14dpUuTz7HHdVNp+7TZtjV5UUnLnEJiP7t4WoNvuJztVZdXiKgNtmIbHAxPV ar66ebtU1uKFTGwOGMi20y7aI9bCEN7GboHHj9JbX5Yiew/yCgJmbulpDqzYB1e736/V fpdMTXhrMgmdqZzFx/U6aTJ8O+B03HtUC6an4C3B0R0Na38erMYw/GdGcvOBT8uEmF8v 9rC21fqev3BtDVn42TEH+5as7DkbhrqYsqK0uBDoym7k9adyk/D6FLTmvlAfSIbYCOS3 jcJA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id dm28si32779055edb.226.2019.12.31.08.41.53; Tue, 31 Dec 2019 08:42:19 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727070AbfLaQkC (ORCPT + 99 others); Tue, 31 Dec 2019 11:40:02 -0500 Received: from foss.arm.com ([217.140.110.172]:35776 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726060AbfLaQkB (ORCPT ); Tue, 31 Dec 2019 11:40:01 -0500 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 F0C84328; Tue, 31 Dec 2019 08:40:00 -0800 (PST) Received: from [192.168.1.123] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 263263F68F; Tue, 31 Dec 2019 08:39:59 -0800 (PST) Subject: Re: [RFC v2 1/1] drm/lima: Add optional devfreq support To: Martin Blumenstingl Cc: yuq825@gmail.com, dri-devel@lists.freedesktop.org, robh@kernel.org, tomeu.vizoso@collabora.com, airlied@linux.ie, linux-kernel@vger.kernel.org, steven.price@arm.com, linux-rockchip@lists.infradead.org, wens@csie.org, alyssa.rosenzweig@collabora.com, daniel@ffwll.ch, linux-amlogic@lists.infradead.org References: <20191227173707.20413-1-martin.blumenstingl@googlemail.com> <20191227173707.20413-2-martin.blumenstingl@googlemail.com> From: Robin Murphy Message-ID: Date: Tue, 31 Dec 2019 16:39:58 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2019-12-31 2:17 pm, Martin Blumenstingl wrote: > Hi Robin, > > On Mon, Dec 30, 2019 at 1:47 AM Robin Murphy wrote: >> >> On 2019-12-29 11:19 pm, Martin Blumenstingl wrote: >>> Hi Robin, >>> >>> On Sun, Dec 29, 2019 at 11:58 PM Robin Murphy wrote: >>>> >>>> Hi Martin, >>>> >>>> On 2019-12-27 5:37 pm, Martin Blumenstingl wrote: >>>>> Most platforms with a Mali-400 or Mali-450 GPU also have support for >>>>> changing the GPU clock frequency. Add devfreq support so the GPU clock >>>>> rate is updated based on the actual GPU usage when the >>>>> "operating-points-v2" property is present in the board.dts. >>>>> >>>>> The actual devfreq code is taken from panfrost_devfreq.c and modified so >>>>> it matches what the lima hardware needs: >>>>> - a call to dev_pm_opp_set_clkname() during initialization because there >>>>> are two clocks on Mali-4x0 IPs. "core" is the one that actually clocks >>>>> the GPU so we need to control it using devfreq. >>>>> - locking when reading or writing the devfreq statistics because (unlike >>>>> than panfrost) we have multiple PP and GP IRQs which may finish jobs >>>>> concurrently. >>>> >>>> I gave this a quick try on my RK3328, and the clock scaling indeed kicks >>>> in nicely on the glmark2 scenes that struggle, however something appears >>>> to be missing in terms of regulator association, as the appropriate OPP >>>> voltages aren't reflected in the GPU supply (fortunately the initial >>>> voltage seems close enough to that of the highest OPP not to cause major >>>> problems, on my box at least). With panfrost on RK3399 I do see the >>>> supply voltage scaling accordingly, but I don't know my way around >>>> devfreq well enough to know what matters in the difference :/ >>> first of all: thank you for trying this out! :-) >>> >>> does your kernel include commit 221bc77914cbcc ("drm/panfrost: Use >>> generic code for devfreq") for your panfrost test? >>> if I understand the devfreq API correct then I suspect with that >>> commit panfrost also won't change the voltage anymore. >> >> Oh, you're quite right - I was already considering that change as >> ancient history, but indeed it's only in 5.5-rc, while that board is >> still on 5.4.y release kernels. No wonder I couldn't make sense of how >> the (current) code could possibly be working :) >> >> I'll try the latest -rc kernel tomorrow to confirm (now that PCIe is >> hopefully fixed), but I'm already fairly confident you've called it >> correctly. > I just tested it with the lima driver (by undervolting the GPU by > 0.05V) and it seems that dev_pm_opp_set_regulators is really needed. > I'll fix this in the next version of this patch and also submit a fix > for panfrost (I won't be able to test that though, so help is > appreciated in terms of testing :)) Yeah, I started hacking something up for panfrost yesterday, but at the point of realising the core OPP code wants refactoring to actually handle optional regulators without spewing errors, decided that was crossing the line into "work" and thus could wait until next week :D Cheers, Robin.