On Mon, 29 Nov 2021 at 13:58, Maarten Lankhorst maarten.lankhorst@linux.intel.com wrote:
Now that we require locking to evict, multiple vmas from the same object might not be evicted. This is expected and required, because execbuf will move to short-term pinning by using the lock only. This will cause these tests to fail, because they create a ton of vma's for the same object.
Unbind manually to prevent spurious -ENOSPC in those mock tests.
Signed-off-by: Maarten Lankhorst maarten.lankhorst@linux.intel.com
Hmm, do we need this? It looks like we should be able to handle such scenarios, with already locked objects sharing the same dma-resv? Or is something else going on here?
drivers/gpu/drm/i915/selftests/i915_vma.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/selftests/i915_vma.c b/drivers/gpu/drm/i915/selftests/i915_vma.c index 1f10fe36619b..5c5809dfe9b2 100644 --- a/drivers/gpu/drm/i915/selftests/i915_vma.c +++ b/drivers/gpu/drm/i915/selftests/i915_vma.c @@ -691,7 +691,11 @@ static int igt_vma_rotate_remap(void *arg) }
i915_vma_unpin(vma);
err = i915_vma_unbind(vma);
if (err) {
pr_err("Unbinding returned %i\n", err);
goto out_object;
} cond_resched(); } }
@@ -848,6 +852,11 @@ static int igt_vma_partial(void *arg)
i915_vma_unpin(vma); nvma++;
err = i915_vma_unbind(vma);
if (err) {
pr_err("Unbinding returned %i\n", err);
goto out_object;
} cond_resched(); }
@@ -882,6 +891,12 @@ static int igt_vma_partial(void *arg)
i915_vma_unpin(vma);
err = i915_vma_unbind(vma);
if (err) {
pr_err("Unbinding returned %i\n", err);
goto out_object;
}
count = 0; list_for_each_entry(vma, &obj->vma.list, obj_link) count++;
-- 2.34.0