On 29/10/2018 07:34, Viresh Kumar wrote: > On 26-10-18, 10:30, Daniel Lezcano wrote: >> On 26/10/2018 06:11, Viresh Kumar wrote: >>> On 25-10-18, 14:04, Daniel Lezcano wrote: >>>> I think it is actually correct. The example is confusing on what the >>>> numbers are. IIUC, it is: >>>> >>>> (after normalizing) >>>> >>>> dhrystone result on big CPU is 1024 at 1100MHz >>>> dhrystone result on little CPU is 446 at 850MHz >>>> >>>> We have to scale the result of the little for 1100MHz in order to compare. >>>> >>>> 1100/850 = 1.294 >>>> >>>> dhrystone result on little CPU is 446 * 1.294 = 577 at 1100MHz >>>> >>>> So we put the normalized values 1024 and 577. The arch_topology will >>>> scale 577 back to 446 as it will compute the max capacity based on the >>>> max freq which is 850MHz. >>>> >>>> The *final* capacities are 1024 for cluster0 and 446 for cluster1 (read >>>> the cpu max capacity, the ones showed in the sysfs). >>>> >>>> Did I miss something ? >>> >>> No. What about making it more clear in the example to save the next idiot (like >>> me) from wasting time :) >>> >>> diff --git a/Documentation/devicetree/bindings/arm/cpu-capacity.txt b/Documentation/devicetree/bindings/arm/cpu-capacity.txt >>> index 9b5685a1d15d..d061e6575bde 100644 >>> --- a/Documentation/devicetree/bindings/arm/cpu-capacity.txt >>> +++ b/Documentation/devicetree/bindings/arm/cpu-capacity.txt >>> @@ -61,7 +61,10 @@ mhz values (normalized w.r.t. the highest value found while parsing the DT). >>> Example 1 (ARM 64-bit, 6-cpu system, two clusters): >>> capacities-dmips-mhz are scaled w.r.t. 1024 (cpu@0 and cpu@1) >>> supposing cluster0@max-freq=1100 and custer1@max-freq=850, >>> -final capacities are 1024 for cluster0 and 446 for cluster1 >>> +final capacities are 1024 for cluster0 and 446 for cluster1. >>> +Note that the values mentioned below in the example (1024 and 578) >>> +aren't normalized based on max frequency of each cluster and that is >>> +left for the operating system to do. >> >> Yes, it will help but if you want to make things even more clear, I >> suggest to elaborate the text a bit and give the numbers above to >> explain (1100/850=1.294, 446 * 1.294 = 577, ...) > > I didn't wanted to explain way too much, but how about this.. > > diff --git a/Documentation/devicetree/bindings/arm/cpu-capacity.txt b/Documentation/devicetree/bindings/arm/cpu-capacity.txt > index 9b5685a1d15d..84262cdb8d29 100644 > --- a/Documentation/devicetree/bindings/arm/cpu-capacity.txt > +++ b/Documentation/devicetree/bindings/arm/cpu-capacity.txt > @@ -59,9 +59,11 @@ mhz values (normalized w.r.t. the highest value found while parsing the DT). > =========================================== > > Example 1 (ARM 64-bit, 6-cpu system, two clusters): > -capacities-dmips-mhz are scaled w.r.t. 1024 (cpu@0 and cpu@1) > -supposing cluster0@max-freq=1100 and custer1@max-freq=850, > -final capacities are 1024 for cluster0 and 446 for cluster1 > +The capacities-dmips-mhz or DMIPS/MHz values (scaled to 1024) > +are 1024 and 578 for cluster0 and cluster1. Further normalization > +is done by the operating system based on cluster0@max-freq=1100 and > +custer1@max-freq=850, final capacities are 1024 for cluster0 and > +446 for cluster1 (576*850/1100). Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog