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@xxxxxxxxxxxxxxxxxx> > 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxx> > --- > 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@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx