Re: [PATCH 2/5] drm/i915: Track i915_active using debugobjects

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21/06/2019 14:05, Chris Wilson wrote:
Provide runtime asserts and tracking of i915_active via debugobjects.
For example, this should allow us to check that the i915_active is only
active when we expect it to be and is never freed too early.

One consequence is that, for simplicity, we no longer allow i915_active
to be on-stack which only affected the selftests.

Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
---
  drivers/gpu/drm/i915/i915_active.c           | 66 ++++++++++++++++-
  drivers/gpu/drm/i915/selftests/i915_active.c | 78 +++++++++++++++-----
  2 files changed, 123 insertions(+), 21 deletions(-)


[snip]

+
+static struct live_active *
+__live_active_setup(struct drm_i915_private *i915)
  {
  	struct intel_engine_cs *engine;
  	struct i915_sw_fence *submit;
+	struct live_active *active;
  	enum intel_engine_id id;
  	unsigned int count = 0;
  	int err = 0;
- submit = heap_fence_create(GFP_KERNEL);
-	if (!submit)
-		return -ENOMEM;
+	active = __live_alloc(i915);
+	if (!active)
+		return ERR_PTR(-ENOMEM);
- i915_active_init(i915, &active->base, __live_active_retire);
-	active->retired = false;
+	submit = heap_fence_create(GFP_KERNEL);
+	if (!submit) {
+		kfree(active);
+		return ERR_PTR(-ENOMEM);
+	}
if (!i915_active_acquire(&active->base)) {
  		pr_err("First i915_active_acquire should report being idle\n");
@@ -84,64 +107,79 @@ static int __live_active_setup(struct drm_i915_private *i915,
  	i915_sw_fence_commit(submit);
  	heap_fence_put(submit);
- return err;
+	/* XXX leaks live_active on error */
+	return err ? ERR_PTR(err) : active

Too much of a pain?

Not a blocker,
Reviewed-by: Matthew Auld <matthew.auld@xxxxxxxxx>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux