[RFC PATCH v2 0/4] CPUs capacity information for heterogeneous systems
From: Juri Lelli <hidden>
Date: 2016-01-18 15:00:39
Also in:
linux-pm, lkml
Hi Mark, On 15/01/16 18:01, Mark Brown wrote:
On Fri, Jan 08, 2016 at 02:09:28PM +0000, Juri Lelli wrote:quoted
Second version of this RFC proposes an alternative solution (w.r.t. v1) to the problem of how do we init CPUs original capacity: we run a bogus benchmark (for this RFC I simple stole int_sqrt from lib/ and I run that in a loop to perform some integer computation, I'm sure there are better benchmarks around) on the first cpu of each frequency domain (assuming no u-arch differences inside domains), measure time to complete a fixed number of iterations and then normalize results to SCHED_CAPACITY_SCALE (1024). I didn't spend much time in polishing this up or thinking about a better benchmark, as this is an RFC and I'd like discussion happening before we make this solution better working/looking. However, surprisingly, results are not that bad already:This approach looks good to me - certainly vastly preferable to putting the numbers into DT.quoted
2. Dynamic profiling at boot (v2) pros: - does not require a standardized definition of capacity - cannot be incorrectly tuned (once benchmark is fixed) - does not require user/integrator workquoted
cons: - not easy to come up with a clean solution, as it seems interaction with several subsystems (e.g., cpufreq) is requiredThis actually seems to be pretty clean.
Oh, maybe I was overly critic of my code then. :)
quoted
- not easy to agree upon a single benchmark (that has to be both representative and simple enough to run at boot) - numbers might (and do) vary from boot to bootThis does come back to the question of how accurate the numbers need to be - is "good enough" fine?
Here we probably also have to account for the fact that numbers might actually change from boot to boot. They might be good enough in average, but you might have cases in which, for some reason, they turn out to be far from usual values. Not that I see that happening much on my boxes, but I guess it can happen. Best, - Juri