Commit 5c2625c4 authored by Maarten Lankhorst's avatar Maarten Lankhorst
Browse files

drm/i915: Remove dma_resv_prune



The signaled bit is already used for quick testing if a fence is signaled.
On top of that, it's a terrible abuse of dma-fence api, and in the common
case where the object is already locked by the caller, the trylock will fail.

If it were useful, the core dma-api would have exposed the same functionality.

The fact that i915 has a dma_resv_utils.c file should be a warning that the
functionality either belongs in core, or is not very useful at all.
In this case the latter.

Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
[mlankhorst: Improve commit message]
Acked-by: default avatarChristian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211021103605.735002-3-maarten.lankhorst@linux.intel.com
Reviewed-by: Matthew Auld <matthew.auld@intel.com> #irc
parent 16d69a89
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -60,7 +60,6 @@ i915-y += i915_drv.o \

# core library code
i915-y += \
	dma_resv_utils.o \
	i915_memcpy.o \
	i915_mm.o \
	i915_sw_fence.o \
+0 −17
Original line number Diff line number Diff line
// 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(resv, true))
			dma_resv_add_excl_fence(resv, NULL);
		dma_resv_unlock(resv);
	}
}
+0 −13
Original line number Diff line number Diff line
/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2020 Intel Corporation
 */

#ifndef DMA_RESV_UTILS_H
#define DMA_RESV_UTILS_H

struct dma_resv;

void dma_resv_prune(struct dma_resv *resv);

#endif /* DMA_RESV_UTILS_H */
+0 −3
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@

#include "gt/intel_gt_requests.h"

#include "dma_resv_utils.h"
#include "i915_trace.h"

static bool swap_available(void)
@@ -235,8 +234,6 @@ i915_gem_shrink(struct i915_gem_ww_ctx *ww,
					i915_gem_object_unlock(obj);
			}

			dma_resv_prune(obj->base.resv);

			scanned += obj->base.size >> PAGE_SHIFT;
skip:
			i915_gem_object_put(obj);
+0 −8
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@

#include "gt/intel_engine.h"

#include "dma_resv_utils.h"
#include "i915_gem_ioctls.h"
#include "i915_gem_object.h"

@@ -52,13 +51,6 @@ i915_gem_object_wait_reservation(struct dma_resv *resv,
	}
	dma_resv_iter_end(&cursor);

	/*
	 * Opportunistically prune the fences iff we know they have *all* been
	 * signaled.
	 */
	if (timeout > 0)
		dma_resv_prune(resv);

	return ret;
}