Skip to content
Snippets Groups Projects
Commit e25913a1 authored by Zbigniew Kempczyński's avatar Zbigniew Kempczyński
Browse files

i915/gem_mmap_offset: Ignore ENOSPC error for making residency execbuf

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



v2: Add explanation for random execution of make_resident() (Kamil)

Signed-off-by: default avatarZbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: default avatarKamil Konieczny <kamil.konieczny@linux.intel.com>
parent fc40a025
No related branches found
No related tags found
No related merge requests found
Pipeline #703641 passed
......@@ -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,9 @@ 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);
/* Zero-init bo in execbuf or pagefault handler path randomly */
if (random() & 1)
make_resident(i915, batch, handle);
ptr = __mmap_offset(i915, handle, 0, size,
PROT_READ | PROT_WRITE,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment