On Tue, Mar 5, 2019 at 1:00 PM Quentin Perret <quentin.per...@arm.com> wrote: > > On Tuesday 05 Mar 2019 at 12:44:06 (+0100), Peter Zijlstra wrote: > > On Tue, Mar 05, 2019 at 11:58:37AM +0100, Rafael J. Wysocki wrote: > > > So after the Peter's patch "sched/cpufreq: Fix 32bit math overflow" > > > I will need to recompute sg_cpu->min in sugov_limits(). > > > > So there's still an open question; do we want that ->min thing to depend > > on available frequencies _at_all_ ? > > > > I'm thinking it might be a good thing to have the iowait boost curve be > > independent of all that. > > > > Like said; if we set it at 128 (static), it takes 9 consequtive wake-ups > > for it to reach 1024 (max). While now the curve depends on how wide the > > gap is between min_freq and max_freq. And it seems weird to have this > > behaviour depend on that. To me at least. > > I'm not conceptually against it, but that really wants testing I think. > I can already see how we're gonna see regressions: 128 is much lower > than 'min' on my juno for ex, so with the approach you suggest it's > gonna take several wake-up before the iowait stuff does anything at all.
But that 128 needs to be compared to (SCHED_CAPACITY_SCALE * cpuinfo.min_freq) / cpuinfo.max_freq so with SCHED_CAPACITY_SCALE equal to 1024 this means max_freq 8x higher than min_freq. That is not totally unreasonable IMO and because sg_cpu->iowait_boost grows exponentially, the difference between 8x and, say, 4x is one iteration. > The first steps will all be below the min freq, so they'll just be > transparent, while right now the iowait boost kicks in much faster :/ There can be one iteration of a difference this way or that way AFAICS and I'm not even sure how much of a performance difference that makes in practice. OTOH I fundamentally don't see why the iowait boost should ramp up faster on CPUs having a higher max_freq to min_freq ratio. Say you have two platforms, both with max_freq of 2 GHz and with min_freq equal to 250 MHz and 500 MHz, respectively. The ratios in question will be 8 and 4 then, so the first one will reliably react 50% slower to iowait than the second one for no particular reason at all. > OTOH, you also have platforms like the recent Snapdragons with 30+ OPPs, > and for them starting at 128 will speed things up. > > So maybe what you want is to start at max(min, 128) ? That's not just min, though, or is it?