[Intel-gfx] [PATCH v4] drm/i915: Workaround to avoid lite restore with HEAD==TAIL
Chris Wilson
chris at chris-wilson.co.uk
Wed Apr 15 10:19:00 PDT 2015
On Wed, Apr 15, 2015 at 06:11:33PM +0100, Michel Thierry wrote:
> WaIdleLiteRestore is an execlists-only workaround, and requires the driver
> to ensure that any context always has HEAD!=TAIL when attempting lite
> restore.
>
> Add two extra MI_NOOP instructions at the end of each request, but keep
> the requests tail pointing before the MI_NOOPs. We may not need to
> executed them, and this is why request->tail is sampled before adding
> these extra instructions.
>
> If we submit a context to the ELSP which has previously been submitted,
> move the tail pointer past the MI_NOOPs. This ensures HEAD!=TAIL.
>
> v2: Move overallocation to gen8_emit_request, and added note about
> sampling request->tail in commit message (Chris).
>
> v3: Remove redundant request->tail assignment in __i915_add_request, in
> lrc mode this is already set in execlists_context_queue.
> Do not add wa implementation details inside gem (Chris).
>
> v4: Apply the wa whenever the req has been resubmitted and update
> comment (Chris).
>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Thomas Daniel <thomas.daniel at intel.com>
> Signed-off-by: Michel Thierry <michel.thierry at intel.com>
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list