Re: [PATCH 3/3] drm/i915/execlists: Cache the last priolist lookup

Chris Wilson
2017-09-25T12:54:26Z

Quoting Chris Wilson (2017-09-25 13:49:29)
> From: Michał Winiarski <michal.winiarski@intel.com>
>
> Avoid the repeated rbtree lookup for each request as we unwind them by
> tracking the last priolist.
>
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/intel_lrc.c | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index c84831c7ea4a..7802b1bd2b5c 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -357,13 +357,14 @@ static void unwind_wa_tail(struct drm_i915_gem_request *rq)
>
> static void unwind_incomplete_requests(struct intel_engine_cs *engine)
> {
> + struct i915_priolist *p = &engine->execlists.default_priolist;
> + int last_prio = I915_PRIORITY_NORMAL;

Bah, my suggestion. And it doesn't work unless default_priolist is
already in the rbtree.
-Chris