Re: [PATCH v2] arm64: dts: qcom: sc7280: Add capacity and DPC properties

From: Doug Anderson
Date: Mon Nov 06 2023 - 11:54:21 EST


Hi,

On Fri, Nov 3, 2023 at 3:54 AM Ankit Sharma <quic_anshar@xxxxxxxxxxx> wrote:
>
> The "capacity-dmips-mhz" and "dynamic-power-coefficient" are
> used to build Energy Model which in turn is used by EAS to take
> placement decisions. So add it to SC7280 soc.
>
> Signed-off-by: Ankit Sharma <quic_anshar@xxxxxxxxxxx>
> ---
> changes in v2: https://lore.kernel.org/all/20231103095358.29312-1-quic_anshar@xxxxxxxxxxx/
> - updated commit message and subject.
>
> arch/arm64/boot/dts/qcom/sc7280.dtsi | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> index 8601253aec70..b1890824188c 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> @@ -176,6 +176,8 @@
> &CLUSTER_SLEEP_0>;
> next-level-cache = <&L2_0>;
> operating-points-v2 = <&cpu0_opp_table>;
> + capacity-dmips-mhz = <1024>;
> + dynamic-power-coefficient = <100>;
> interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
> <&epss_l3 MASTER_EPSS_L3_APPS &epss_l3 SLAVE_EPSS_L3_SHARED>;
> qcom,freq-domain = <&cpufreq_hw 0>;
> @@ -204,6 +206,8 @@
> &CLUSTER_SLEEP_0>;
> next-level-cache = <&L2_100>;
> operating-points-v2 = <&cpu0_opp_table>;
> + capacity-dmips-mhz = <1024>;
> + dynamic-power-coefficient = <100>;
> interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
> <&epss_l3 MASTER_EPSS_L3_APPS &epss_l3 SLAVE_EPSS_L3_SHARED>;
> qcom,freq-domain = <&cpufreq_hw 0>;
> @@ -227,6 +231,8 @@
> &CLUSTER_SLEEP_0>;
> next-level-cache = <&L2_200>;
> operating-points-v2 = <&cpu0_opp_table>;
> + capacity-dmips-mhz = <1024>;
> + dynamic-power-coefficient = <100>;
> interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
> <&epss_l3 MASTER_EPSS_L3_APPS &epss_l3 SLAVE_EPSS_L3_SHARED>;
> qcom,freq-domain = <&cpufreq_hw 0>;
> @@ -250,6 +256,8 @@
> &CLUSTER_SLEEP_0>;
> next-level-cache = <&L2_300>;
> operating-points-v2 = <&cpu0_opp_table>;
> + capacity-dmips-mhz = <1024>;
> + dynamic-power-coefficient = <100>;
> interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
> <&epss_l3 MASTER_EPSS_L3_APPS &epss_l3 SLAVE_EPSS_L3_SHARED>;
> qcom,freq-domain = <&cpufreq_hw 0>;
> @@ -273,6 +281,8 @@
> &CLUSTER_SLEEP_0>;
> next-level-cache = <&L2_400>;
> operating-points-v2 = <&cpu4_opp_table>;
> + capacity-dmips-mhz = <1946>;

Though I don't think it's technically required, in other systems
(including the examples in the documentation) the biggest CPU gets
1024 "capacity-dmips-mhz" and the other ones are scaled to that.


> + dynamic-power-coefficient = <520>;
> interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
> <&epss_l3 MASTER_EPSS_L3_APPS &epss_l3 SLAVE_EPSS_L3_SHARED>;
> qcom,freq-domain = <&cpufreq_hw 1>;
> @@ -296,6 +306,8 @@
> &CLUSTER_SLEEP_0>;
> next-level-cache = <&L2_500>;
> operating-points-v2 = <&cpu4_opp_table>;
> + capacity-dmips-mhz = <1946>;
> + dynamic-power-coefficient = <520>;
> interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
> <&epss_l3 MASTER_EPSS_L3_APPS &epss_l3 SLAVE_EPSS_L3_SHARED>;
> qcom,freq-domain = <&cpufreq_hw 1>;
> @@ -319,6 +331,8 @@
> &CLUSTER_SLEEP_0>;
> next-level-cache = <&L2_600>;
> operating-points-v2 = <&cpu4_opp_table>;
> + capacity-dmips-mhz = <1946>;
> + dynamic-power-coefficient = <520>;
> interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
> <&epss_l3 MASTER_EPSS_L3_APPS &epss_l3 SLAVE_EPSS_L3_SHARED>;
> qcom,freq-domain = <&cpufreq_hw 1>;
> @@ -342,6 +356,8 @@
> &CLUSTER_SLEEP_0>;
> next-level-cache = <&L2_700>;
> operating-points-v2 = <&cpu7_opp_table>;
> + capacity-dmips-mhz = <1985>;
> + dynamic-power-coefficient = <552>;

The fact that cpu7 has different values for capacity-dmips-mhz and
dynamic-power-coefficient is surprising to me. I think what this means
is that at the same MHz this core can process more instructions than
the other big CPUs but that (at the same MHz) it burns more power
doing so. Is that really true? I thought that this core was
essentially the same as the other big cores but was simply anointed to
be able to run a little faster.


-Doug