drm/i915: Forgo last_fence active request tracking
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 12 Aug 2019 17:48:03 +0000 (18:48 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 12 Aug 2019 18:29:16 +0000 (19:29 +0100)
commit3d6792cf0a93d34e939acda7e35a649d83440274
treeb74a297f3e3c4c83674e5ececc8e59224f0225c7
parentcf1c97dcb96cb2622a0b0524b6931bd7bd7d2344
drm/i915: Forgo last_fence active request tracking

We were using the last_fence to track the last request that used this
vma that might be interpreted by a fence register and forced ourselves
to wait for this request before modifying any fence register that
overlapped our vma. Due to requirement that we need to track any XY_BLT
command, linear or tiled, this in effect meant that we have to track the
vma for its active lifespan anyway, so we can forgo the explicit
last_fence tracking and just use the whole vma->active.

Another solution would be to pipeline the register updates, and would
help resolve some long running stalls for gen3 (but only gen 2 and 3!)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190812174804.26180-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_gem_fence_reg.c
drivers/gpu/drm/i915/i915_gem_gtt.c
drivers/gpu/drm/i915/i915_vma.c
drivers/gpu/drm/i915/i915_vma.h