diff mbox series

[RFC,3/3] arm64: dts: renesas: r9a09g047: Add thermal hotplug trip point

Message ID 20250309121324.29633-4-john.madieu.xa@bp.renesas.com (mailing list archive)
State New
Delegated to: Geert Uytterhoeven
Headers show
Series thermal: Add CPU hotplug cooling driver | expand

Commit Message

John Madieu March 9, 2025, 12:13 p.m. UTC
Add CPU hotplug trip point to shutdown CPU1 and CPU2 when exceeding 110°C.

Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
 arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Christian Loehle March 11, 2025, 10:53 a.m. UTC | #1
On 3/9/25 12:13, John Madieu wrote:
> Add CPU hotplug trip point to shutdown CPU1 and CPU2 when exceeding 110°C.
> 
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
> ---
>  arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> index 93b57d7ad7b9..06bd394582e2 100644
> --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> @@ -533,6 +533,13 @@ map0 {
>  							 <&cpu2 0 3>, <&cpu3 0 3>;
>  					contribution = <1024>;
>  				};
> +
> +				map1 {
> +					trip = <&trip_emergency>;
> +					cooling-device = <&cpu1 0 1>, <&cpu2 0 1>;
> +					contribution = <1024>;
> +				};
> +
>  			};
>  
>  			trips {
> @@ -542,6 +549,12 @@ target: trip-point {
>  					type = "passive";
>  				};
>  
> +				trip_emergency: emergency {
> +					temperature = <110000>;
> +					hysteresis = <1000>;
> +					type = "plug";
> +				};
> +
>  				sensor_crit: sensor-crit {
>  					temperature = <120000>;
>  					hysteresis = <1000>;


Are there no other cooling methods?
How does it compare to idle inject?

Furthermore, couldn't the offlining of some CPUs lead to the rest being
operated at much higher OPPs therefore the overall power increase, too?
(Without having looked at if this is a possibility for this particular
SoC.)
Some numbers would be helpful IMO.
John Madieu March 11, 2025, 11:57 a.m. UTC | #2
Hi Christian,

Thanks for reviewing.

> -----Original Message-----
> From: Christian Loehle <christian.loehle@arm.com>
> Sent: Tuesday, March 11, 2025 11:53 AM
> To: John Madieu <john.madieu.xa@bp.renesas.com>; geert+renesas@glider.be;
> niklas.soderlund+renesas@ragnatech.se; conor+dt@kernel.org;
> krzk+dt@kernel.org; robh@kernel.org; rafael@kernel.org;
> daniel.lezcano@linaro.org
> Cc: magnus.damm@gmail.com; Claudiu Beznea
> <claudiu.beznea.uj@bp.renesas.com>; devicetree@vger.kernel.org;
> john.madieu@gmail.com; rui.zhang@intel.com; linux-kernel@vger.kernel.org;
> linux-renesas-soc@vger.kernel.org; Biju Das <biju.das.jz@bp.renesas.com>;
> linux-pm@vger.kernel.org
> Subject: Re: [RFC PATCH 3/3] arm64: dts: renesas: r9a09g047: Add thermal
> hotplug trip point
> 
> On 3/9/25 12:13, John Madieu wrote:
> > Add CPU hotplug trip point to shutdown CPU1 and CPU2 when exceeding
> 110°C.
> >
> > Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
> > ---
> >  arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 13 +++++++++++++
> >  1 file changed, 13 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> > b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> > index 93b57d7ad7b9..06bd394582e2 100644
> > --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> > +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> > @@ -533,6 +533,13 @@ map0 {
> >  							 <&cpu2 0 3>, <&cpu3 0 3>;
> >  					contribution = <1024>;
> >  				};
> > +
> > +				map1 {
> > +					trip = <&trip_emergency>;
> > +					cooling-device = <&cpu1 0 1>, <&cpu2 0 1>;
> > +					contribution = <1024>;
> > +				};
> > +
> >  			};
> >
> >  			trips {
> > @@ -542,6 +549,12 @@ target: trip-point {
> >  					type = "passive";
> >  				};
> >
> > +				trip_emergency: emergency {
> > +					temperature = <110000>;
> > +					hysteresis = <1000>;
> > +					type = "plug";
> > +				};
> > +
> >  				sensor_crit: sensor-crit {
> >  					temperature = <120000>;
> >  					hysteresis = <1000>;
> 
> 
> Are there no other cooling methods?
> How does it compare to idle inject?
> 
> Furthermore, couldn't the offlining of some CPUs lead to the rest being
> operated at much higher OPPs therefore the overall power increase, too?
> (Without having looked at if this is a possibility for this particular
> SoC.)
> Some numbers would be helpful IMO.

To clarify this, I tested with CPUFreq cooling, along with performance
Governor, with "plug" threshold higher than "passive" one. When passive
trip is crossed, we observe proper CPUs throttling, and when "plug" trip
is crossed, we observe target CPUs being put offline, while throttling
remains.

When "plug" targeted CPUs come back online, throttling is still operational.

Once I get comparison results with CPU idle cooling, I'll keep you posted.

Regards,
John.
Christian Loehle March 11, 2025, 3:29 p.m. UTC | #3
On 3/11/25 11:57, John Madieu wrote:
> Hi Christian,
> 
> Thanks for reviewing.
> 
>> -----Original Message-----
>> From: Christian Loehle <christian.loehle@arm.com>
>> Sent: Tuesday, March 11, 2025 11:53 AM
>> To: John Madieu <john.madieu.xa@bp.renesas.com>; geert+renesas@glider.be;
>> niklas.soderlund+renesas@ragnatech.se; conor+dt@kernel.org;
>> krzk+dt@kernel.org; robh@kernel.org; rafael@kernel.org;
>> daniel.lezcano@linaro.org
>> Cc: magnus.damm@gmail.com; Claudiu Beznea
>> <claudiu.beznea.uj@bp.renesas.com>; devicetree@vger.kernel.org;
>> john.madieu@gmail.com; rui.zhang@intel.com; linux-kernel@vger.kernel.org;
>> linux-renesas-soc@vger.kernel.org; Biju Das <biju.das.jz@bp.renesas.com>;
>> linux-pm@vger.kernel.org
>> Subject: Re: [RFC PATCH 3/3] arm64: dts: renesas: r9a09g047: Add thermal
>> hotplug trip point
>>
>> On 3/9/25 12:13, John Madieu wrote:
>>> Add CPU hotplug trip point to shutdown CPU1 and CPU2 when exceeding
>> 110°C.
>>>
>>> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
>>> ---
>>>  arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 13 +++++++++++++
>>>  1 file changed, 13 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
>>> b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
>>> index 93b57d7ad7b9..06bd394582e2 100644
>>> --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
>>> +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
>>> @@ -533,6 +533,13 @@ map0 {
>>>  							 <&cpu2 0 3>, <&cpu3 0 3>;
>>>  					contribution = <1024>;
>>>  				};
>>> +
>>> +				map1 {
>>> +					trip = <&trip_emergency>;
>>> +					cooling-device = <&cpu1 0 1>, <&cpu2 0 1>;
>>> +					contribution = <1024>;
>>> +				};
>>> +
>>>  			};
>>>
>>>  			trips {
>>> @@ -542,6 +549,12 @@ target: trip-point {
>>>  					type = "passive";
>>>  				};
>>>
>>> +				trip_emergency: emergency {
>>> +					temperature = <110000>;
>>> +					hysteresis = <1000>;
>>> +					type = "plug";
>>> +				};
>>> +
>>>  				sensor_crit: sensor-crit {
>>>  					temperature = <120000>;
>>>  					hysteresis = <1000>;
>>
>>
>> Are there no other cooling methods?
>> How does it compare to idle inject?
>>
>> Furthermore, couldn't the offlining of some CPUs lead to the rest being
>> operated at much higher OPPs therefore the overall power increase, too?
>> (Without having looked at if this is a possibility for this particular
>> SoC.)
>> Some numbers would be helpful IMO.
> 
> To clarify this, I tested with CPUFreq cooling, along with performance
> Governor, with "plug" threshold higher than "passive" one. When passive
> trip is crossed, we observe proper CPUs throttling, and when "plug" trip
> is crossed, we observe target CPUs being put offline, while throttling
> remains.
> 
> When "plug" targeted CPUs come back online, throttling is still operational.
> 
> Once I get comparison results with CPU idle cooling, I'll keep you posted.
> 

Thanks John!
Might make sense to also try this with schedutil, because my argument doesn't
hold with performance governor.
As long as we also have throttling that's not a concern anyway.
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
index 93b57d7ad7b9..06bd394582e2 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
@@ -533,6 +533,13 @@  map0 {
 							 <&cpu2 0 3>, <&cpu3 0 3>;
 					contribution = <1024>;
 				};
+
+				map1 {
+					trip = <&trip_emergency>;
+					cooling-device = <&cpu1 0 1>, <&cpu2 0 1>;
+					contribution = <1024>;
+				};
+
 			};
 
 			trips {
@@ -542,6 +549,12 @@  target: trip-point {
 					type = "passive";
 				};
 
+				trip_emergency: emergency {
+					temperature = <110000>;
+					hysteresis = <1000>;
+					type = "plug";
+				};
+
 				sensor_crit: sensor-crit {
 					temperature = <120000>;
 					hysteresis = <1000>;