lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <84744442-73e4-49c0-a54f-1530093fb27b@linaro.org>
Date: Mon, 2 Dec 2024 14:29:00 +0000
From: Bryan O'Donoghue <bryan.odonoghue@...aro.org>
To: Bjorn Andersson <andersson@...nel.org>
Cc: Michael Turquette <mturquette@...libre.com>,
 Stephen Boyd <sboyd@...nel.org>,
 Dmitry Baryshkov <dmitry.baryshkov@...aro.org>,
 linux-arm-msm@...r.kernel.org, linux-clk@...r.kernel.org,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH v6 3/3] clk: qcom: Support attaching GDSCs to multiple
 parents

On 02/12/2024 03:58, Bjorn Andersson wrote:
> On Fri, Nov 29, 2024 at 01:06:49PM +0000, Bryan O'Donoghue wrote:
>> When a clock-controller has multiple power-domains we need to attach
>> parent GDSCs in that clock-controller as subdomains of each of the
>> power-domains.
> 
> I envision a fair number of current and future readers will wonder why
> this is... Why do we _need_ to perform this attachment?
> 
>>
>> Testing on the x1e80100 reference shows that both power-domains need to be
>> switched on for the GDSCs in the clock-controller to work.
> 
> You're making a completely generic change, but are referring here to
> some specific (probably camera) case.
> 
>> Some open
>> questions remain.
>>
>> 1. Should there be a hirearchy of power-domains in the clock-controller.
> 
> Your TITAN_TOP patches is already an example of such hierarchy, so I
> don't think that's an open question.
> 
>> 2. If there should be no hirearchy should the parent GDSC inside the
>>     clock-controller attach to each power-domain in the clock-controller.
> 
> I suspect that the TITAN_TOP gives you this impression that there is a
> "parent GDSC"; that's generally not the case - but the mechanism
> introduced by the patch is still needed.
> 
>> 3. If there are multiple parent GDSCs in a clock-controller do we attach
>>     those top-level GDSCs to each controller power-domain.
>> 4. Finally should performance-states be applied equally across those
>>     power-domains.
>>
>> It may be if we see more clock-controllers with multiple power-domains that
>> some mixture of these questions will need to be implemented for specific
>> hardware.
> 
> GPUCC has always been an example of this and there are several other
> examples in multimedia, which we've just ignored. And even for GCC you
> have a mix of voltage requirements cast across CX and MX.
> 
>> Right now the approach taken here is to attach the
>> clock-controller GDSC parent to each clock-controller power-domain.
>>
> 
> What is "the clock-controller GDSC parent"? Perhaps I'm just parsing
> this incorrectly?

> Perhaps we can use the naming from the API and say "each GDSC is put in
> the subdomain of all power-domains of the clock-controller"?

OK

> 
> I'm not convinced that the propagation of set_performance_state has been
> adequately been understood.
> 
> But, in general, I'm not against the idea of starting off by voting on
> all rails, mentioning that it's likely that in some cases more effective
> propagation of votes can be made and then leave this as a future
> exercise.
> 
> I would like to see 1-2 use cases beyond camcc being exposed to this
> though.

I'm not sure we have one on x1e - GPUCC maybe, I think you mentioned that.

                 gpucc: clock-controller@...0000 {
                         compatible = "qcom,x1e80100-gpucc";
                         reg = <0 0x03d90000 0 0xa000>;
                         clocks = <&bi_tcxo_div2>,
                                  <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
                                  <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
                         #clock-cells = <1>;
                         #reset-cells = <1>;
                         #power-domain-cells = <1>;
                 };

I can look around for a list of power-domains = <>; for this block.

I suspect though they are already on as they aren't list.

Do you want examples in the commit log or dtsi changes to accompany ?

---
bod

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ