Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1723408 > unrolled thread
| Started by | Dietmar Eggemann <dietmar.eggemann@arm.com> |
|---|---|
| First post | 2017-08-30 16:50 +0200 |
| Last post | 2017-09-06 13:50 +0200 |
| Articles | 6 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 0/4] arm: remove cpu_efficiency Dietmar Eggemann <dietmar.eggemann@arm.com> - 2017-08-30 16:50 +0200
[PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information Dietmar Eggemann <dietmar.eggemann@arm.com> - 2017-08-30 16:50 +0200
Re: [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information Krzysztof Kozlowski <krzk@kernel.org> - 2017-08-30 22:30 +0200
Re: [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information Dietmar Eggemann <dietmar.eggemann@arm.com> - 2017-08-31 12:40 +0200
Re: [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information Krzysztof Kozlowski <krzk@kernel.org> - 2017-09-03 22:00 +0200
Re: [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information Dietmar Eggemann <dietmar.eggemann@arm.com> - 2017-09-06 13:50 +0200
| From | Dietmar Eggemann <dietmar.eggemann@arm.com> |
|---|---|
| Date | 2017-08-30 16:50 +0200 |
| Subject | [PATCH 0/4] arm: remove cpu_efficiency |
| Message-ID | <ukctz-16f-3@gated-at.bofh.it> |
For Cortex-A15/A7 arm big.LITTLE systems there are currently two ways to
set the cpu capacity.
The first one (commit 06073ee26775 "ARM: 8621/3: parse cpu
capacity-dmips-mhz from DT") is based on dt 'cpu capacity-dmips-mhz'
bindings and the appropriate dt parsing code in
drivers/base/arch_topology.c. It further takes differences in maximum
cpu frequency values into consideration, normalizes the maximum cpu
capacity to SCHED_CAPACITY_SCALE (1024) and scales all the cpus
accordingly.
cpu capacity = (capacity-dmips-mhz * max cpu frequency) /
(max capacity-dmips-mhz * max (max cpu frequency)
This solution is shared between arm and arm64 and works for other
combinations of big and little cpus (besides Cortex-A15/A7) as well.
The second one (commit 339ca09d7ada "ARM: 7463/1: topology: Update
cpu_power according to DT information" is based on the 'struct
cpu_efficiency table_efficiency[]' and the dt parsing code in
arch/arm/kernel/topology.c. It further requires a clock-frequency
property per cpu node, calculates a so called middle frequency for an
average cpu in the system which is as close as possible to
SCHED_CAPACITY_SCALE (1024) and uses this to compute the cpu capacity
values.
cpu capacity = (cpu efficiency * clock frequency) / middle capacity
This solution only works for Cortex-A15/A7 arm big.LITTLE systems.
The aim of this patch-set is to have only one solution for all arm and
arm64 big.LITTLE platforms.
(1) Therefore, it removes the code for the 'cpu_efficiency/
clock-frequency dt property' (second) solution [patch 01/04] and
migrates the arm big.LITTLE platforms currently using this approach
[patch 02-04/04] to use the 'cpu capacity-dmips-mhz' (first)
solution.
(2) Moreover, it will also assure that the highest original cpu capacity
(rq->cpu_capacity_orig) in a non-smt system is SCHED_CAPACITY_SCALE
(1024).
(3) And finally, another advantage is the dynamic detection of the max
cpu frequency which comes with the first solution instead of the
static clock-frequency dt property value.
Currently, the arm dt parsing code in parse_dt_topology() checks if the
dt uses the capacity-dmips-mhz property. If this is the case it uses
the first, otherwise the second solution. This patch-set removes the
code for the second solution from arch/arm/kernel/topology.c.
The following arm big.LITTLE platforms which use cpu node descriptions
with the 'compatible' properties "arm,cortex-a15" and "arm,cortex-a7"
as well as the "clock-frequency" are (theoretically*) affected:
(1) arndale-octa, peach-pi, peach-pit, smdk5420 (exynos5420-cpus.dtsi)
(2) odroidxu3, odroidxu3-lite, odroidxu4 (exynos5422-cpus.dtsi)
(3) r8a7790-lager (r8a7790.dtsi)
TC2 (vexpress-v2p-ca15_a7.dts) already has the capacity-dmips-mhz
properties (it never had "clock-frequency" properties per cpu node
though).
*Currently, these platforms are only theoretically affected. The reason
is because heterogeneous cpu capacity support on arm stopped with commit
8cd5601c5060 ("sched/fair: Convert arch_scale_cpu_capacity() from weak
function to #define") because the arch never defined
arch_scale_cpu_capacity so the task scheduler uses the default
implementation in kernel/sched/sched.h. This will change as soon the
patch "arm: wire cpu-invariant accounting support up to the task
scheduler" [1] is in mainline.
This patch-set has been tested on TC2 and Samsung Chromebook 2 13"
(peach-pi, Exynos 5800).
[1] https://marc.info/?l=linux-kernel&m=150367158111303&w=2
Dietmar Eggemann (4):
arm: topology: remove cpu_efficiency
arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information
arm: dts: exynos: add exynos5422 cpu capacity-dmips-mhz information
arm: dts: r8a7790: add cpu capacity-dmips-mhz information
arch/arm/boot/dts/exynos5420-cpus.dtsi | 8 +++
arch/arm/boot/dts/exynos5422-cpus.dtsi | 8 +++
arch/arm/boot/dts/r8a7790.dtsi | 8 +++
arch/arm/kernel/topology.c | 113 +--------------------------------
4 files changed, 27 insertions(+), 110 deletions(-)
--
2.11.0
[toc] | [next] | [standalone]
| From | Dietmar Eggemann <dietmar.eggemann@arm.com> |
|---|---|
| Date | 2017-08-30 16:50 +0200 |
| Subject | [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information |
| Message-ID | <ukctB-16f-51@gated-at.bofh.it> |
| In reply to | #1723408 |
The following 'capacity-dmips-mhz' dt property values are used:
Cortex-A15: 1024, Cortex-A7: 539
They have been derived from the cpu_efficiency values:
Cortex-A15: 3891, Cortex-A7: 2048
by scaling them so that the Cortex-A15s (big cores) use 1024.
The cpu_efficiency values were originally derived from the "Big.LITTLE
Processing with ARM Cortex™-A15 & Cortex-A7" white paper
(http://www.cl.cam.ac.uk/~rdm34/big.LITTLE.pdf). Table 1 lists 1.9x
(3891/2048) as the Cortex-A15 vs Cortex-A7 performance ratio for the
Dhrystone benchmark.
The following platforms are affected once cpu-invariant accounting
support is re-connected to the task scheduler:
arndale-octa, peach-pi, peach-pit, smdk5420
The patch has been tested on Samsung Chromebook 2 13" (peach-pi, Exynos
5800).
$ cat /sys/devices/system/cpu/cpu*/cpu_capacity
1024
1024
1024
1024
389
389
389
389
The Cortex-A15 vs Cortex-A7 performance ratio is 1024/389 = 2.63.
The values derived with the 'cpu_efficiency/clock-frequency dt property'
solution are:
$ cat /sys/devices/system/cpu/cpu*/cpu_capacity
1535
1535
1535
1535
448
448
448
448
The Cortex-A15 vs Cortex-A7 performance ratio is 1535/448 = 3.43.
The discrepancy between 2.63 and 3.43 is due to the false assumption
when using the 'cpu_efficiency/clock-frequency dt property' solution
that the max cpu frequency of the little cpus is 1 GHZ and not 1.3 GHz.
The Cortex-A7 cluster runs with a max cpu frequency of 1.3 GHZ whereas
the 'clock-frequency' property value is set to 1 GHz.
3.43/1.3 = 2.64
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
1800000
1800000
1800000
1800000
1300000 <-- max cpu frequency of the Cortex-A7s (little cores)
1300000
1300000
1300000
Running another benchmark (single-threaded sysbench affine to the
individual cpus) with performance cpufreq governor on the Samsung
Chromebook 2 13" showed the following numbers:
$ for i in `seq 0 7`; do taskset -c $i sysbench --test=cpu
--num-threads=1 --max-time=10 run | grep "total number of events:";
done
total number of events: 1083
total number of events: 1085
total number of events: 1085
total number of events: 1085
total number of events: 454
total number of events: 454
total number of events: 454
total number of events: 454
The Cortex-A15 vs Cortex-A7 performance ratio is 2.39, i.e. very close
to the one derived from the Dhrystone based one of the "Big.LITTLE
Processing with ARM Cortex™-A15 & Cortex-A7" white paper (2.63).
We don't aim for exact values for the cpu capacity values. Besides the
CPI (Cycles Per Instruction), the instruction mix and whether the system
runs cpu-bound or memory-bound has an impact on the cpu capacity values
derived from these benchmark results.
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
---
arch/arm/boot/dts/exynos5420-cpus.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/exynos5420-cpus.dtsi b/arch/arm/boot/dts/exynos5420-cpus.dtsi
index 5c052d7ff554..d7d703aa1699 100644
--- a/arch/arm/boot/dts/exynos5420-cpus.dtsi
+++ b/arch/arm/boot/dts/exynos5420-cpus.dtsi
@@ -36,6 +36,7 @@
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
+ capacity-dmips-mhz = <1024>;
};
cpu1: cpu@1 {
@@ -48,6 +49,7 @@
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
+ capacity-dmips-mhz = <1024>;
};
cpu2: cpu@2 {
@@ -60,6 +62,7 @@
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
+ capacity-dmips-mhz = <1024>;
};
cpu3: cpu@3 {
@@ -72,6 +75,7 @@
cooling-min-level = <0>;
cooling-max-level = <11>;
#cooling-cells = <2>; /* min followed by max */
+ capacity-dmips-mhz = <1024>;
};
cpu4: cpu@100 {
@@ -85,6 +89,7 @@
cooling-min-level = <0>;
cooling-max-level = <7>;
#cooling-cells = <2>; /* min followed by max */
+ capacity-dmips-mhz = <539>;
};
cpu5: cpu@101 {
@@ -97,6 +102,7 @@
cooling-min-level = <0>;
cooling-max-level = <7>;
#cooling-cells = <2>; /* min followed by max */
+ capacity-dmips-mhz = <539>;
};
cpu6: cpu@102 {
@@ -109,6 +115,7 @@
cooling-min-level = <0>;
cooling-max-level = <7>;
#cooling-cells = <2>; /* min followed by max */
+ capacity-dmips-mhz = <539>;
};
cpu7: cpu@103 {
@@ -121,6 +128,7 @@
cooling-min-level = <0>;
cooling-max-level = <7>;
#cooling-cells = <2>; /* min followed by max */
+ capacity-dmips-mhz = <539>;
};
};
};
--
2.11.0
[toc] | [prev] | [next] | [standalone]
| From | Krzysztof Kozlowski <krzk@kernel.org> |
|---|---|
| Date | 2017-08-30 22:30 +0200 |
| Subject | Re: [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information |
| Message-ID | <ukhMD-4yE-25@gated-at.bofh.it> |
| In reply to | #1723411 |
On Wed, Aug 30, 2017 at 03:41:18PM +0100, Dietmar Eggemann wrote:
> The following 'capacity-dmips-mhz' dt property values are used:
>
> Cortex-A15: 1024, Cortex-A7: 539
>
> They have been derived from the cpu_efficiency values:
>
> Cortex-A15: 3891, Cortex-A7: 2048
>
> by scaling them so that the Cortex-A15s (big cores) use 1024.
>
> The cpu_efficiency values were originally derived from the "Big.LITTLE
> Processing with ARM Cortex™-A15 & Cortex-A7" white paper
> (http://www.cl.cam.ac.uk/~rdm34/big.LITTLE.pdf). Table 1 lists 1.9x
> (3891/2048) as the Cortex-A15 vs Cortex-A7 performance ratio for the
> Dhrystone benchmark.
>
> The following platforms are affected once cpu-invariant accounting
> support is re-connected to the task scheduler:
>
> arndale-octa, peach-pi, peach-pit, smdk5420
>
> The patch has been tested on Samsung Chromebook 2 13" (peach-pi, Exynos
> 5800).
>
> $ cat /sys/devices/system/cpu/cpu*/cpu_capacity
> 1024
> 1024
> 1024
> 1024
> 389
> 389
> 389
> 389
I am missing something... shouldn't this be 539? Or is it scaled with
the clock-frequency (1 GHz) value?
Best regards,
Krzysztof
>
> The Cortex-A15 vs Cortex-A7 performance ratio is 1024/389 = 2.63.
>
> The values derived with the 'cpu_efficiency/clock-frequency dt property'
> solution are:
>
> $ cat /sys/devices/system/cpu/cpu*/cpu_capacity
> 1535
> 1535
> 1535
> 1535
> 448
> 448
> 448
> 448
>
> The Cortex-A15 vs Cortex-A7 performance ratio is 1535/448 = 3.43.
>
> The discrepancy between 2.63 and 3.43 is due to the false assumption
> when using the 'cpu_efficiency/clock-frequency dt property' solution
> that the max cpu frequency of the little cpus is 1 GHZ and not 1.3 GHz.
> The Cortex-A7 cluster runs with a max cpu frequency of 1.3 GHZ whereas
> the 'clock-frequency' property value is set to 1 GHz.
>
> 3.43/1.3 = 2.64
>
> $ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
> 1800000
> 1800000
> 1800000
> 1800000
> 1300000 <-- max cpu frequency of the Cortex-A7s (little cores)
> 1300000
> 1300000
> 1300000
>
> Running another benchmark (single-threaded sysbench affine to the
> individual cpus) with performance cpufreq governor on the Samsung
> Chromebook 2 13" showed the following numbers:
>
> $ for i in `seq 0 7`; do taskset -c $i sysbench --test=cpu
> --num-threads=1 --max-time=10 run | grep "total number of events:";
> done
>
> total number of events: 1083
> total number of events: 1085
> total number of events: 1085
> total number of events: 1085
> total number of events: 454
> total number of events: 454
> total number of events: 454
> total number of events: 454
>
> The Cortex-A15 vs Cortex-A7 performance ratio is 2.39, i.e. very close
> to the one derived from the Dhrystone based one of the "Big.LITTLE
> Processing with ARM Cortex™-A15 & Cortex-A7" white paper (2.63).
>
> We don't aim for exact values for the cpu capacity values. Besides the
> CPI (Cycles Per Instruction), the instruction mix and whether the system
> runs cpu-bound or memory-bound has an impact on the cpu capacity values
> derived from these benchmark results.
>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
> ---
> arch/arm/boot/dts/exynos5420-cpus.dtsi | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos5420-cpus.dtsi b/arch/arm/boot/dts/exynos5420-cpus.dtsi
> index 5c052d7ff554..d7d703aa1699 100644
> --- a/arch/arm/boot/dts/exynos5420-cpus.dtsi
> +++ b/arch/arm/boot/dts/exynos5420-cpus.dtsi
> @@ -36,6 +36,7 @@
> cooling-min-level = <0>;
> cooling-max-level = <11>;
> #cooling-cells = <2>; /* min followed by max */
> + capacity-dmips-mhz = <1024>;
> };
>
> cpu1: cpu@1 {
> @@ -48,6 +49,7 @@
> cooling-min-level = <0>;
> cooling-max-level = <11>;
> #cooling-cells = <2>; /* min followed by max */
> + capacity-dmips-mhz = <1024>;
> };
>
> cpu2: cpu@2 {
> @@ -60,6 +62,7 @@
> cooling-min-level = <0>;
> cooling-max-level = <11>;
> #cooling-cells = <2>; /* min followed by max */
> + capacity-dmips-mhz = <1024>;
> };
>
> cpu3: cpu@3 {
> @@ -72,6 +75,7 @@
> cooling-min-level = <0>;
> cooling-max-level = <11>;
> #cooling-cells = <2>; /* min followed by max */
> + capacity-dmips-mhz = <1024>;
> };
>
> cpu4: cpu@100 {
> @@ -85,6 +89,7 @@
> cooling-min-level = <0>;
> cooling-max-level = <7>;
> #cooling-cells = <2>; /* min followed by max */
> + capacity-dmips-mhz = <539>;
> };
>
> cpu5: cpu@101 {
> @@ -97,6 +102,7 @@
> cooling-min-level = <0>;
> cooling-max-level = <7>;
> #cooling-cells = <2>; /* min followed by max */
> + capacity-dmips-mhz = <539>;
> };
>
> cpu6: cpu@102 {
> @@ -109,6 +115,7 @@
> cooling-min-level = <0>;
> cooling-max-level = <7>;
> #cooling-cells = <2>; /* min followed by max */
> + capacity-dmips-mhz = <539>;
> };
>
> cpu7: cpu@103 {
> @@ -121,6 +128,7 @@
> cooling-min-level = <0>;
> cooling-max-level = <7>;
> #cooling-cells = <2>; /* min followed by max */
> + capacity-dmips-mhz = <539>;
> };
> };
> };
> --
> 2.11.0
>
[toc] | [prev] | [next] | [standalone]
| From | Dietmar Eggemann <dietmar.eggemann@arm.com> |
|---|---|
| Date | 2017-08-31 12:40 +0200 |
| Subject | Re: [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information |
| Message-ID | <ukv3c-4rE-9@gated-at.bofh.it> |
| In reply to | #1723652 |
On 30/08/17 21:26, Krzysztof Kozlowski wrote: > On Wed, Aug 30, 2017 at 03:41:18PM +0100, Dietmar Eggemann wrote: >> The following 'capacity-dmips-mhz' dt property values are used: >> >> Cortex-A15: 1024, Cortex-A7: 539 >> >> They have been derived from the cpu_efficiency values: >> >> Cortex-A15: 3891, Cortex-A7: 2048 >> >> by scaling them so that the Cortex-A15s (big cores) use 1024. >> >> The cpu_efficiency values were originally derived from the "Big.LITTLE >> Processing with ARM Cortex™-A15 & Cortex-A7" white paper >> (http://www.cl.cam.ac.uk/~rdm34/big.LITTLE.pdf). Table 1 lists 1.9x >> (3891/2048) as the Cortex-A15 vs Cortex-A7 performance ratio for the >> Dhrystone benchmark. >> >> The following platforms are affected once cpu-invariant accounting >> support is re-connected to the task scheduler: >> >> arndale-octa, peach-pi, peach-pit, smdk5420 >> >> The patch has been tested on Samsung Chromebook 2 13" (peach-pi, Exynos >> 5800). >> >> $ cat /sys/devices/system/cpu/cpu*/cpu_capacity >> 1024 >> 1024 >> 1024 >> 1024 >> 389 >> 389 >> 389 >> 389 > > I am missing something... shouldn't this be 539? Or is it scaled with > the clock-frequency (1 GHz) value? Yeah, the capacity-dmips-mhz dt value of 539 for the little cpus is scaled by 1.3/1.8 (max cpu capacity/ system wide max cpu capacity): 539 * 1.3/1.8 = 389 This max cpu capacity scaling is part of both solutions, the 'cpu capacity-dmips-mhz' and the 'cpu_efficiency/clock-frequency dt property' one. The (original*) cpu capacity on a heterogeneous platform expresses uArch and max cpu frequency differences between the (logical) cpus of the system. * not further reduced by rt and/or irq pressure. [...]
[toc] | [prev] | [next] | [standalone]
| From | Krzysztof Kozlowski <krzk@kernel.org> |
|---|---|
| Date | 2017-09-03 22:00 +0200 |
| Subject | Re: [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information |
| Message-ID | <ulJdL-45k-5@gated-at.bofh.it> |
| In reply to | #1724085 |
On Thu, Aug 31, 2017 at 11:36:07AM +0100, Dietmar Eggemann wrote: > On 30/08/17 21:26, Krzysztof Kozlowski wrote: > > On Wed, Aug 30, 2017 at 03:41:18PM +0100, Dietmar Eggemann wrote: > >> The following 'capacity-dmips-mhz' dt property values are used: > >> > >> Cortex-A15: 1024, Cortex-A7: 539 > >> > >> They have been derived from the cpu_efficiency values: > >> > >> Cortex-A15: 3891, Cortex-A7: 2048 > >> > >> by scaling them so that the Cortex-A15s (big cores) use 1024. > >> > >> The cpu_efficiency values were originally derived from the "Big.LITTLE > >> Processing with ARM Cortex™-A15 & Cortex-A7" white paper > >> (http://www.cl.cam.ac.uk/~rdm34/big.LITTLE.pdf). Table 1 lists 1.9x > >> (3891/2048) as the Cortex-A15 vs Cortex-A7 performance ratio for the > >> Dhrystone benchmark. > >> > >> The following platforms are affected once cpu-invariant accounting > >> support is re-connected to the task scheduler: > >> > >> arndale-octa, peach-pi, peach-pit, smdk5420 > >> > >> The patch has been tested on Samsung Chromebook 2 13" (peach-pi, Exynos > >> 5800). > >> > >> $ cat /sys/devices/system/cpu/cpu*/cpu_capacity > >> 1024 > >> 1024 > >> 1024 > >> 1024 > >> 389 > >> 389 > >> 389 > >> 389 > > > > I am missing something... shouldn't this be 539? Or is it scaled with > > the clock-frequency (1 GHz) value? > > Yeah, the capacity-dmips-mhz dt value of 539 for the little cpus is > scaled by 1.3/1.8 (max cpu capacity/ system wide max cpu capacity): > > 539 * 1.3/1.8 = 389 > > This max cpu capacity scaling is part of both solutions, the 'cpu > capacity-dmips-mhz' and the 'cpu_efficiency/clock-frequency dt property' > one. > > The (original*) cpu capacity on a heterogeneous platform expresses uArch > and max cpu frequency differences between the (logical) cpus of the > system. > > * not further reduced by rt and/or irq pressure. > > [...] Thanks for explanation, looks fine for me. I'll take it after merge window. Best regards, Krzysztof
[toc] | [prev] | [next] | [standalone]
| From | Dietmar Eggemann <dietmar.eggemann@arm.com> |
|---|---|
| Date | 2017-09-06 13:50 +0200 |
| Subject | Re: [PATCH 2/4] arm: dts: exynos: add exynos5420 cpu capacity-dmips-mhz information |
| Message-ID | <umH0e-1bN-23@gated-at.bofh.it> |
| In reply to | #1725740 |
On 03/09/17 20:56, Krzysztof Kozlowski wrote: > On Thu, Aug 31, 2017 at 11:36:07AM +0100, Dietmar Eggemann wrote: >> On 30/08/17 21:26, Krzysztof Kozlowski wrote: >>> On Wed, Aug 30, 2017 at 03:41:18PM +0100, Dietmar Eggemann wrote: [...] >>>> The patch has been tested on Samsung Chromebook 2 13" (peach-pi, Exynos >>>> 5800). >>>> >>>> $ cat /sys/devices/system/cpu/cpu*/cpu_capacity >>>> 1024 >>>> 1024 >>>> 1024 >>>> 1024 >>>> 389 >>>> 389 >>>> 389 >>>> 389 >>> >>> I am missing something... shouldn't this be 539? Or is it scaled with >>> the clock-frequency (1 GHz) value? >> >> Yeah, the capacity-dmips-mhz dt value of 539 for the little cpus is >> scaled by 1.3/1.8 (max cpu capacity/ system wide max cpu capacity): >> >> 539 * 1.3/1.8 = 389 >> >> This max cpu capacity scaling is part of both solutions, the 'cpu >> capacity-dmips-mhz' and the 'cpu_efficiency/clock-frequency dt property' >> one. >> >> The (original*) cpu capacity on a heterogeneous platform expresses uArch >> and max cpu frequency differences between the (logical) cpus of the >> system. >> >> * not further reduced by rt and/or irq pressure. >> >> [...] > > Thanks for explanation, looks fine for me. I'll take it after merge > window. Nice, since the 'cpu capacity-dmips-mhz' is already supported for arm (and used by TC2 (vexpress-v2p-ca15_a7.dts)) this can be done independently of the actual removal of the 'cpu_efficiency/clock-frequency dt property' solution in patch 1/4. [..]
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web