From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753648AbcFPIUt (ORCPT ); Thu, 16 Jun 2016 04:20:49 -0400 Received: from foss.arm.com ([217.140.101.70]:41933 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751246AbcFPIUo (ORCPT ); Thu, 16 Jun 2016 04:20:44 -0400 Date: Thu, 16 Jun 2016 09:20:42 +0100 From: Juri Lelli To: Rob Herring Cc: "linux-kernel@vger.kernel.org" , "linux-pm@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , peterz@infradead.org, Vincent Guittot , Mark Rutland , Russell King - ARM Linux , Sudeep Holla , Lorenzo Pieralisi , Catalin Marinas , Will Deacon , Morten Rasmussen , dietmar.eggemann@arm.com, Mark Brown , sgurrappadi@nvidia.com, Pawel Moll , Ian Campbell , Kumar Gala , Maxime Ripard , Olof Johansson , Gregory CLEMENT , Paul Walmsley , Linus Walleij , Chen-Yu Tsai , Thomas Petazzoni Subject: Re: [PATCH v5 1/8] Documentation: arm: define DT cpu capacity-dmips-mhz bindings Message-ID: <20160616082042.GI5981@e106622-lin> References: <1465985877-18271-1-git-send-email-juri.lelli@arm.com> <1465985877-18271-2-git-send-email-juri.lelli@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 15/06/16 17:11, Rob Herring wrote: > On Wed, Jun 15, 2016 at 5:17 AM, Juri Lelli wrote: [...] > > +========================================== > > +2 - CPU capacity definition > > +========================================== > > + > > +CPU capacity is a number that provides the scheduler information about CPUs > > +heterogeneity. Such heterogeneity can come from micro-architectural differences > > +(e.g., ARM big.LITTLE systems) or maximum frequency at which CPUs can run > > +(e.g., SMP systems with multiple frequency domains). Heterogeneity in this > > +context is about differing performance characteristics; this binding tries to > > +capture a first-order approximation of the relative performance of CPUs. > > + > > +CPU capacities are obtained by running a suitable benchmark. This binding makes > > +no aspersions on the validity or suitability of any particular benchmark, the > > +final capacity should, however, be: > > + > > +* A "single-threaded" or CPU affine benchmark > > +* Divided by the running frequency of the CPU executing the benchmark > > +* Not subject to dynamic frequency scaling of the CPU > > + > > +For the time being we however advise usage of the Dhrystone benchmark. What > > +above thus becomes: > > + > > +CPU capacities are obtained by running the Dhrystone benchmark on each CPU at > > +max frequency. The obtained DMIPS score is then divided by the frequency (in > > +MHz) at which the benchmark has been run, so that DMIPS/MHz are obtained. > > +Such values are then normalized w.r.t. the highest score obtained in the > > +system. > > So the property says it represents DMIPS/MHz, but we take that and > "normalize" them back to a made up numbers? The normalization step is required if one wants to prevent cross-platform comparisons (I think that's what vendors generally want). They are not made up, they still come from measured DMIPS/MHz values. > Perhaps that step should > be optional. Then paranoid Si vendors can put their fake numbers in > and end users can update the dts files with real numbers. > But, you can also decide to skip that step and put non normalized numbers in. This documentation is advising people for what seems to be be the most common way of coming up with values that, once in a DT, won't be used to compare perf of different platforms. Maybe we want to add a paragraph clearly stating this point? > Is there any point in allowing people to pick their own scale? Why not > just 100 (as in percent)? > I think we agreed that not picking any particular scale is more flexible and easier to use. For example, if there is a 2x factor between you cpus you can simply put 1 and 2 there. But, if you need higher "resolution" you can put whatever suits you better and we'll use the max as scale. Thanks a lot for the review. Best, - Juri