• Chris Wilson's avatar
    Revert "drm/i915/gt: Wait for new requests in intel_gt_retire_requests()" · 689122dc
    Chris Wilson authored
    From inside an active timeline in the execbuf ioctl, we may try to
    reclaim some space in the GGTT. We need GGTT space for all objects on
    !full-ppgtt platforms, and for context images everywhere. However, to
    free up space in the GGTT we may need to remove some pinned objects
    (e.g. context images) that require flushing the idle barriers to remove.
    For this we use the big hammer of intel_gt_wait_for_idle()
    
    However, commit 7936a22d ("drm/i915/gt: Wait for new requests in
    intel_gt_retire_requests()") will continue spinning on the wait if a
    timeline is active but lacks requests, as is the case during execbuf
    reservation. Spinning forever is quite time consuming, so revert that
    commit and start again.
    
    In practice, the effect commit 7936a22d was trying to achieve is
    accomplished by commit 1683d24c ("drm/i915/gt: Move new timelines
    to the end of active_list"), so there is no immediate rush to replace
    the looping.
    
    Testcase: igt/gem_exec_reloc/basic-range
    Fixes: 7936a22d ("drm/i915/gt: Wait for new requests in intel_gt_retire_requests()")
    References: 1683d24c ("drm/i915/gt: Move new timelines to the end of active_list")
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20191121071044.97798-1-chris@chris-wilson.co.uk
    689122dc
intel_gt_requests.c 3.38 KB