[Intel-gfx] [PATCH] drm/i915: Add background commentary to "waitboosting"
Daniel Vetter
daniel at ffwll.ch
Fri Dec 11 10:24:29 PST 2015
On Thu, Dec 10, 2015 at 10:37:36AM +0000, Chris Wilson wrote:
> Describe the intent of boosting the GPU frequency to maximum before
> waiting on the GPU.
>
> RPS waitboosting was introduced with
>
> commit b29c19b645287f7062e17d70fa4e9781a01a5d88
> Author: Chris Wilson <chris at chris-wilson.co.uk>
> Date: Wed Sep 25 17:34:56 2013 +0100
>
> drm/i915: Boost RPS frequency for CPU stalls
>
> but lacked a concise comment in the code to explain itself.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
We might want to consolidate this with the kerneldoc for gen6_rps_boost,
if that ever happens. But for now this is a good place.
Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/i915/i915_gem.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index ece7e2908fa3..40a7ade4eafe 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1248,6 +1248,22 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
> }
>
> trace_i915_gem_request_wait_begin(req);
> +
> + /* This client is about to stall waiting for the GPU. In many cases
> + * this is undesirable and limits the throughput of the system, as
> + * many clients cannot continue processing user input/output whilst
> + * asleep. RPS autotuning may take tens of milliseconds to respond
> + * to the GPU load and thus incurs additional latency for the client.
> + * We can circumvent that promoting the GPU frequency to maximum
> + * before we wait. This makes GPU throttle up much more quickly
> + * (good for benchmarks), but at a cost of spending more power
> + * processing the workload (bad for battery). Not all clients even
> + * want their results immediately and for them we should just let
> + * the GPU select its own frequency to maximise efficiency.
> + * To prevent a single client from forcing the clocks too high for
> + * the whole system, we only allow each client to waitboost once
> + * in a busy period.
> + */
> if (INTEL_INFO(req->i915)->gen >= 6)
> gen6_rps_boost(req->i915, rps, req->emitted_jiffies);
>
> --
> 2.6.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list