Commit 102a0a90 authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Joonas Lahtinen

Revert "drm/i915/gem: Async GPU relocations only"

This reverts commit 9e0f9464 ("drm/i915/gem: Async GPU relocations only"),
and related commit 7ac2d253 ("drm/i915/gem: Delete unused code").

Async GPU relocations are not the path forward, we want to remove
GPU accelerated relocation support eventually when userspace is fixed
to use VM_BIND, and this is the first step towards that. We will keep
async gpu relocations around for now, until userspace is fixed.

Relocation support will be disabled completely on platforms where there
was never any userspace that depends on it, as the hardware doesn't
require it from at least gen9+ onward. For older platforms, the plan
is to use cpu relocations only.

The igt side is fixed in igt commit 39e9aa1032a4e ("tests/i915: Remove
subtests that rely on async relocation behavior").
Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20200819140904.1708856-2-maarten.lankhorst@linux.intel.comSigned-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
parent da1ea128
...@@ -37,14 +37,20 @@ static int __igt_gpu_reloc(struct i915_execbuffer *eb, ...@@ -37,14 +37,20 @@ static int __igt_gpu_reloc(struct i915_execbuffer *eb,
return err; return err;
/* 8-Byte aligned */ /* 8-Byte aligned */
err = __reloc_entry_gpu(eb, vma, offsets[0] * sizeof(u32), 0); if (!__reloc_entry_gpu(eb, vma,
if (err) offsets[0] * sizeof(u32),
0)) {
err = -EIO;
goto unpin_vma; goto unpin_vma;
}
/* !8-Byte aligned */ /* !8-Byte aligned */
err = __reloc_entry_gpu(eb, vma, offsets[1] * sizeof(u32), 1); if (!__reloc_entry_gpu(eb, vma,
if (err) offsets[1] * sizeof(u32),
1)) {
err = -EIO;
goto unpin_vma; goto unpin_vma;
}
/* Skip to the end of the cmd page */ /* Skip to the end of the cmd page */
i = PAGE_SIZE / sizeof(u32) - RELOC_TAIL - 1; i = PAGE_SIZE / sizeof(u32) - RELOC_TAIL - 1;
...@@ -54,9 +60,12 @@ static int __igt_gpu_reloc(struct i915_execbuffer *eb, ...@@ -54,9 +60,12 @@ static int __igt_gpu_reloc(struct i915_execbuffer *eb,
eb->reloc_cache.rq_size += i; eb->reloc_cache.rq_size += i;
/* Force batch chaining */ /* Force batch chaining */
err = __reloc_entry_gpu(eb, vma, offsets[2] * sizeof(u32), 2); if (!__reloc_entry_gpu(eb, vma,
if (err) offsets[2] * sizeof(u32),
2)) {
err = -EIO;
goto unpin_vma; goto unpin_vma;
}
GEM_BUG_ON(!eb->reloc_cache.rq); GEM_BUG_ON(!eb->reloc_cache.rq);
rq = i915_request_get(eb->reloc_cache.rq); rq = i915_request_get(eb->reloc_cache.rq);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment