Thread (3 messages) 3 messages, 2 authors, 2017-02-27

Re: [PATCH 3/3] drm/i915: Remove the vma from the drm_mm if binding fails

From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Date: 2017-02-27 12:17:28
Also in: intel-gfx

On la, 2017-02-25 at 23:25 +0000, Chris Wilson wrote:
As we track whether a vma has been inserted into the drm_mm using the
vma->flags, if we fail to bind the vma into the GTT we do not update
those bits and will attempt to reinsert the vma into the drm_mm on
future passes. To prevent that, we want to unwind i915_vma_insert() if
we fail in our attempt to bind.

Fixes: 59bfa1248e22 ("drm/i915: Start passing around i915_vma from execbuffer")
Testcase: igt/drv_selftest/live_gtt
Signed-off-by: Chris Wilson <redacted>
Cc: Matthew Auld <redacted>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: <redacted> # v4.9+
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

One note below.
quoted hunk ↗ jump to hunk
@@ -541,7 +566,12 @@ int __i915_vma_do_pin(struct i915_vma *vma,
 	GEM_BUG_ON(i915_vma_misplaced(vma, size, alignment, flags));
 	return 0;
 
-err:
+err_remove:
+	if ((vma->flags & I915_VMA_BIND_MASK) == 0) {
This condition could be more symmetric.

Regards, Joonas
+		GEM_BUG_ON(vma->pages);
+		i915_vma_remove(vma);
+	}
+err_unpin:
 	__i915_vma_unpin(vma);
 	return ret;
 }
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help