[PATCH 14/16] drm/i915: Remove i915_vma->active
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Tue Jul 27 13:46:44 UTC 2021
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
---
drivers/gpu/drm/i915/gt/intel_context.c | 43 ++-----------------------
drivers/gpu/drm/i915/i915_gpu_error.c | 9 +++---
drivers/gpu/drm/i915/i915_vma.c | 33 +------------------
drivers/gpu/drm/i915/i915_vma_types.h | 2 --
4 files changed, 8 insertions(+), 79 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
index f5263940d168..670bcf10a326 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -111,10 +111,6 @@ static int __context_pin_state(struct i915_vma *vma, struct i915_gem_ww_ctx *ww)
if (err)
return err;
- err = i915_active_acquire(&vma->active);
- if (err)
- goto err_unpin;
-
/*
* And mark it as a globally pinned object to let the shrinker know
* it cannot reclaim the object until we release it.
@@ -123,45 +119,14 @@ static int __context_pin_state(struct i915_vma *vma, struct i915_gem_ww_ctx *ww)
vma->obj->mm.dirty = true;
return 0;
-
-err_unpin:
- i915_vma_unpin(vma);
- return err;
}
static void __context_unpin_state(struct i915_vma *vma)
{
i915_vma_make_shrinkable(vma);
- i915_active_release(&vma->active);
__i915_vma_unpin(vma);
}
-static int __ring_active(struct intel_ring *ring,
- struct i915_gem_ww_ctx *ww)
-{
- int err;
-
- err = intel_ring_pin(ring, ww);
- if (err)
- return err;
-
- err = i915_active_acquire(&ring->vma->active);
- if (err)
- goto err_pin;
-
- return 0;
-
-err_pin:
- intel_ring_unpin(ring);
- return err;
-}
-
-static void __ring_retire(struct intel_ring *ring)
-{
- i915_active_release(&ring->vma->active);
- intel_ring_unpin(ring);
-}
-
static int intel_context_pre_pin(struct intel_context *ce,
struct i915_gem_ww_ctx *ww)
{
@@ -169,7 +134,7 @@ static int intel_context_pre_pin(struct intel_context *ce,
CE_TRACE(ce, "active\n");
- err = __ring_active(ce->ring, ww);
+ err = intel_ring_pin(ce->ring, ww);
if (err)
return err;
@@ -190,7 +155,7 @@ static int intel_context_pre_pin(struct intel_context *ce,
err_timeline:
intel_timeline_unpin(ce->timeline);
err_ring:
- __ring_retire(ce->ring);
+ intel_ring_unpin(ce->ring);
return err;
}
@@ -200,7 +165,7 @@ static void intel_context_post_unpin(struct intel_context *ce)
__context_unpin_state(ce->state);
intel_timeline_unpin(ce->timeline);
- __ring_retire(ce->ring);
+ intel_ring_unpin(ce->ring);
}
int __intel_context_do_pin_ww(struct intel_context *ce,
@@ -352,13 +317,11 @@ static int __intel_context_active(struct i915_active *active)
intel_context_get(ce);
/* everything should already be activated by intel_context_pre_pin() */
- GEM_WARN_ON(!i915_active_acquire_if_busy(&ce->ring->vma->active));
__intel_ring_pin(ce->ring);
__intel_timeline_pin(ce->timeline);
if (ce->state) {
- GEM_WARN_ON(!i915_active_acquire_if_busy(&ce->state->active));
__i915_vma_pin(ce->state);
i915_vma_make_unshrinkable(ce->state);
}
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index cd398bb93653..e17762dd080d 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1309,10 +1309,8 @@ capture_vma(struct intel_engine_capture_vma *next,
if (!c)
return next;
- if (!i915_active_acquire_if_busy(&vma->active)) {
- kfree(c);
- return next;
- }
+ __i915_vma_get(vma);
+ i915_vma_get(vma);
strcpy(c->name, name);
c->vma = vma; /* reference held while active */
@@ -1405,7 +1403,8 @@ intel_engine_coredump_add_vma(struct intel_engine_coredump *ee,
vma, this->name,
compress));
- i915_active_release(&vma->active);
+ __i915_vma_put(vma);
+ i915_vma_put(vma);
capture = this->next;
kfree(this);
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
index b716c0d9c075..702657d47b17 100644
--- a/drivers/gpu/drm/i915/i915_vma.c
+++ b/drivers/gpu/drm/i915/i915_vma.c
@@ -84,21 +84,6 @@ static void vma_print_allocator(struct i915_vma *vma, const char *reason)
#endif
-static inline struct i915_vma *active_to_vma(struct i915_active *ref)
-{
- return container_of(ref, typeof(struct i915_vma), active);
-}
-
-static int __i915_vma_active(struct i915_active *ref)
-{
- return i915_vma_tryget(active_to_vma(ref)) ? 0 : -ENOENT;
-}
-
-static void __i915_vma_retire(struct i915_active *ref)
-{
- i915_vma_put(active_to_vma(ref));
-}
-
static struct i915_vma *
vma_create(struct drm_i915_gem_object *obj,
struct i915_address_space *vm,
@@ -122,15 +107,6 @@ vma_create(struct drm_i915_gem_object *obj,
vma->size = obj->base.size;
vma->display_alignment = I915_GTT_MIN_ALIGNMENT;
- i915_active_init(&vma->active, __i915_vma_active, __i915_vma_retire, 0);
-
- /* Declare ourselves safe for use inside shrinkers */
- if (IS_ENABLED(CONFIG_LOCKDEP)) {
- fs_reclaim_acquire(GFP_KERNEL);
- might_lock(&vma->active.mutex);
- fs_reclaim_release(GFP_KERNEL);
- }
-
INIT_LIST_HEAD(&vma->closed_link);
if (view && view->type != I915_GGTT_VIEW_NORMAL) {
@@ -1266,14 +1242,10 @@ int i915_vma_pin_ww(struct i915_vma *vma, struct i915_gem_ww_ctx *ww,
goto err_unlock;
}
- err = i915_active_acquire(&vma->active);
- if (err)
- goto err_unlock;
-
if (!(bound & I915_VMA_BIND_MASK)) {
err = i915_vma_insert(vma, size, alignment, flags);
if (err)
- goto err_active;
+ goto err_unlock;
if (i915_is_ggtt(vma->vm))
__i915_vma_set_map_and_fenceable(vma);
@@ -1301,8 +1273,6 @@ int i915_vma_pin_ww(struct i915_vma *vma, struct i915_gem_ww_ctx *ww,
i915_vma_detach(vma);
drm_mm_remove_node(&vma->node);
}
-err_active:
- i915_active_release(&vma->active);
err_unlock:
mutex_unlock(&vma->vm->mutex);
err_fence:
@@ -1434,7 +1404,6 @@ void i915_vma_release(struct kref *ref)
__i915_vma_remove_closed(vma);
i915_vm_put(vma->vm);
- i915_active_fini(&vma->active);
i915_vma_free(vma);
}
diff --git a/drivers/gpu/drm/i915/i915_vma_types.h b/drivers/gpu/drm/i915/i915_vma_types.h
index a129ab9b6405..a9a23e38a622 100644
--- a/drivers/gpu/drm/i915/i915_vma_types.h
+++ b/drivers/gpu/drm/i915/i915_vma_types.h
@@ -255,8 +255,6 @@ struct i915_vma {
#define I915_VMA_SCANOUT_BIT 18
#define I915_VMA_SCANOUT ((int)BIT(I915_VMA_SCANOUT_BIT))
- struct i915_active active;
-
#define I915_VMA_PAGES_BIAS 24
#define I915_VMA_PAGES_ACTIVE (BIT(24) | 1)
atomic_t pages_count; /* number of active binds to the pages */
--
2.31.0
More information about the Intel-gfx-trybot
mailing list