diff options
author | 2020-12-23 12:20:51 +0000 | |
---|---|---|
committer | 2020-12-23 21:58:00 +0000 | |
commit | 6d393ef5ff5cac48b44781b1c1c22aabd65eba27 (patch) | |
tree | 892196f43e904123aa4b400dafb3d5df2929d5a4 /drivers/gpu/drm/i915/gem/i915_gem_wait.c | |
parent | drm/i915/gt: Prefer recycling an idle fence (diff) | |
download | linux-dev-6d393ef5ff5cac48b44781b1c1c22aabd65eba27.tar.xz linux-dev-6d393ef5ff5cac48b44781b1c1c22aabd65eba27.zip |
drm/i915/gem: Optimistically prune dma-resv from the shrinker.
As we shrink an object, also see if we can prune the dma-resv of idle
fences it is maintaining a reference to.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201223122051.4624-2-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/gem/i915_gem_wait.c')
-rw-r--r-- | drivers/gpu/drm/i915/gem/i915_gem_wait.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_wait.c b/drivers/gpu/drm/i915/gem/i915_gem_wait.c index 8af55cd3e690..c1b13ac50d0f 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_wait.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_wait.c @@ -9,6 +9,7 @@ #include "gt/intel_engine.h" +#include "dma_resv_utils.h" #include "i915_gem_ioctls.h" #include "i915_gem_object.h" @@ -84,11 +85,8 @@ i915_gem_object_wait_reservation(struct dma_resv *resv, * Opportunistically prune the fences iff we know they have *all* been * signaled. */ - if (prune_fences && dma_resv_trylock(resv)) { - if (dma_resv_test_signaled_rcu(resv, true)) - dma_resv_add_excl_fence(resv, NULL); - dma_resv_unlock(resv); - } + if (prune_fences) + dma_resv_prune(resv); return timeout; } |