[igt-dev] [PATCH i-g-t] i915/gem_mmap_offset: Ignore ENOSPC error for making residency execbuf

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Mon Oct 3 11:29:26 UTC 2022


Platforms without ppgtt may be affected by ENOSPC when object is too big
to fit in gtt. Still we expect object will be cleared in pagefault path
so we can move forward even if execbuf is failing. To verify object
is cleared in both paths (execbuf/pagefault handler) we select them
randomly.

Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/6973

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
---
 tests/i915/gem_mmap_offset.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tests/i915/gem_mmap_offset.c b/tests/i915/gem_mmap_offset.c
index f51d7e38f5..13da26c784 100644
--- a/tests/i915/gem_mmap_offset.c
+++ b/tests/i915/gem_mmap_offset.c
@@ -102,7 +102,7 @@ static void make_resident(int i915, uint32_t batch, uint32_t handle)
 		.buffer_count = ARRAY_SIZE(obj),
 	};
 
-	gem_execbuf(i915, &eb);
+	__gem_execbuf(i915, &eb);
 	if (obj[1].handle != batch)
 		gem_close(i915, obj[1].handle);
 }
@@ -704,7 +704,8 @@ static void *thread_clear(void *data)
 		size = npages << 12;
 
 		igt_assert_eq(__gem_create_in_memory_region_list(i915, &handle, &size, 0, &arg->region, 1), 0);
-		make_resident(i915, batch, handle);
+		if (random() & 1)
+			make_resident(i915, batch, handle);
 
 		ptr = __mmap_offset(i915, handle, 0, size,
 				    PROT_READ | PROT_WRITE,
-- 
2.34.1



More information about the igt-dev mailing list