[Intel-gfx] [PATCH 5/5] drm/i915: Do not use iowait while waiting for the GPU
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Thu Aug 2 15:09:00 UTC 2018
On 28/07/2018 17:46, Chris Wilson wrote:
> 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.
I see it has been discussed in another thread. My view here is that I do
not know. But fiddling with this on our side does feel questionable.
If IO wait is waiting for a device then it is correct. If it interacts
badly with cpufreq in specifics of shared TDP then I feel it should be
solved elsewhere (cpufreq). I don't have a lot of ideas how though. GPU
usage has been tried by someone in the past but I don't know how that went.
Regards,
Tvrtko
> v2: Both sleeps!
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107410
> References: 52ccc4314293 ("cpufreq: intel_pstate: HWP boost performance on IO wakeup")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: Eero Tamminen <eero.t.tamminen at intel.com>
> Cc: Francisco Jerez <currojerez at riseup.net>
> ---
> 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 ca25c53f8daa..694269e5b761 100644
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -1330,7 +1330,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));
> @@ -1387,7 +1387,7 @@ long i915_request_wait(struct i915_request *rq,
> break;
> }
>
> - timeout = io_schedule_timeout(timeout);
> + timeout = schedule_timeout(timeout);
>
> if (intel_wait_complete(&wait) &&
> intel_wait_check_request(&wait, rq))
>
More information about the Intel-gfx
mailing list