Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > A recent trend for cpufreq is to boost the CPU frequencies for > iowaiters, in particularly to benefit high frequency I/O. We do the same > and boost the GPU clocks to try and minimise time spent waiting for the > GPU. However, as the igfx and CPU share the same TDP, boosting the CPU > frequency will result in the GPU being throttled and its frequency being > reduced. Thus declaring iowait negatively impacts on GPU throughput. > > v2: Both sleeps! > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107410 > References: 52ccc4314293 ("cpufreq: intel_pstate: HWP boost performance on IO wakeup") The commit above has it's own heuristics on when to actual ramp up, inspecting the interval of io waits. Regardless of that, with shared tdp, the waiter should not stand in a way. And that it fixes a regression: Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> On other way around, the atomic commit code on updating planes, could potentially benefit of changing to the io_schedule_timeout. (and/or adopting c state limits) -Mika > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxxxxxxxx> > Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> > Cc: Eero Tamminen <eero.t.tamminen@xxxxxxxxx> > Cc: Francisco Jerez <currojerez@xxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_request.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c > index f3ff8dbe363d..3e48ea87b324 100644 > --- a/drivers/gpu/drm/i915/i915_request.c > +++ b/drivers/gpu/drm/i915/i915_request.c > @@ -1376,7 +1376,7 @@ long i915_request_wait(struct i915_request *rq, > goto complete; > } > > - timeout = io_schedule_timeout(timeout); > + timeout = schedule_timeout(timeout); > } while (1); > > GEM_BUG_ON(!intel_wait_has_seqno(&wait)); > @@ -1414,7 +1414,7 @@ long i915_request_wait(struct i915_request *rq, > wait.seqno - 1)) > qos = wait_dma_qos_add(); > > - timeout = io_schedule_timeout(timeout); > + timeout = schedule_timeout(timeout); > > if (intel_wait_complete(&wait) && > intel_wait_check_request(&wait, rq)) > -- > 2.18.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx