diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2020-12-23 12:20:51 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2020-12-23 21:58:00 +0000 |
commit | 6d393ef5ff5cac48b44781b1c1c22aabd65eba27 (patch) | |
tree | 892196f43e904123aa4b400dafb3d5df2929d5a4 /drivers/gpu/drm/i915/dma_resv_utils.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/dma_resv_utils.c')
-rw-r--r-- | drivers/gpu/drm/i915/dma_resv_utils.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/dma_resv_utils.c b/drivers/gpu/drm/i915/dma_resv_utils.c new file mode 100644 index 000000000000..9e508e7d4629 --- /dev/null +++ b/drivers/gpu/drm/i915/dma_resv_utils.c @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2020 Intel Corporation + */ + +#include <linux/dma-resv.h> + +#include "dma_resv_utils.h" + +void dma_resv_prune(struct dma_resv *resv) +{ + if (dma_resv_trylock(resv)) { + if (dma_resv_test_signaled_rcu(resv, true)) + dma_resv_add_excl_fence(resv, NULL); + dma_resv_unlock(resv); + } +} |