• Chris Wilson's avatar
    drm/i915: Only prune fences after wait-for-all · fa73055b
    Chris Wilson authored
    Currently, we only allow ourselves to prune the fences so long as
    all the waits completed (i.e. all the fences we checked were signaled),
    and that the reservation snapshot did not change across the wait.
    However, if we only waited for a subset of the reservation object, i.e.
    just waiting for the last writer to complete as opposed to all readers
    as well, then we would erroneously conclude we could prune the fences as
    indeed although all of our waits were successful, they did not represent
    the totality of the reservation object.
    
    v2: We only need to check the shared fences due to construction (i.e.
    all of the shared fences will be later than the exclusive fence, if
    any).
    
    Fixes: e54ca977 ("drm/i915: Remove completed fences after a wait")
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Matthew Auld <matthew.auld@intel.com>
    Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180307171303.29466-1-chris@chris-wilson.co.uk
    fa73055b
i915_gem.c 159 KB