[igt-dev] [PATCH i-g-t 5/7] Revert "i915/gem_exec_reloc: Flood the ring with GPU relocs"
Jason Ekstrand
jason at jlekstrand.net
Wed Jun 9 18:05:48 UTC 2021
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
On Tue, Jun 8, 2021 at 4:40 AM Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
>
> This reverts commit 57ee41f12b7a53283fd812c5f72fcb39e6ad2197.
>
> This validates gpu relocations, which we're about to delete.
>
> Cc: Jason Ekstrand <jason at jlekstrand.net>
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Dave Airlie <airlied at redhat.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> ---
> tests/i915/gem_exec_reloc.c | 89 -------------------------------------
> 1 file changed, 89 deletions(-)
>
> diff --git a/tests/i915/gem_exec_reloc.c b/tests/i915/gem_exec_reloc.c
> index c3f42aff9c9a..cbd40962c610 100644
> --- a/tests/i915/gem_exec_reloc.c
> +++ b/tests/i915/gem_exec_reloc.c
> @@ -344,88 +344,6 @@ static void active(int fd, unsigned engine)
> gem_close(fd, obj[0].handle);
> }
>
> -static uint64_t many_relocs(unsigned long count, unsigned long *out)
> -{
> - struct drm_i915_gem_relocation_entry *reloc;
> - unsigned long sz;
> - int i;
> -
> - sz = count * sizeof(*reloc);
> - sz = ALIGN(sz, 4096);
> -
> - reloc = mmap(0, sz, PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
> - igt_assert(reloc != MAP_FAILED);
> - for (i = 0; i < count; i++) {
> - reloc[i].target_handle = 0;
> - reloc[i].presumed_offset = ~0ull;
> - reloc[i].offset = 8 * i;
> - reloc[i].delta = 8 * i;
> - }
> - mprotect(reloc, sz, PROT_READ);
> -
> - *out = sz;
> - return to_user_pointer(reloc);
> -}
> -
> -static void __many_active(int i915, unsigned engine, unsigned long count)
> -{
> - unsigned long reloc_sz;
> - struct drm_i915_gem_exec_object2 obj[2] = {{
> - .handle = gem_create(i915, count * sizeof(uint64_t)),
> - .relocs_ptr = many_relocs(count, &reloc_sz),
> - .relocation_count = count,
> - }};
> - struct drm_i915_gem_execbuffer2 execbuf = {
> - .buffers_ptr = to_user_pointer(obj),
> - .buffer_count = ARRAY_SIZE(obj),
> - .flags = engine | I915_EXEC_HANDLE_LUT,
> - };
> - igt_spin_t *spin;
> -
> - spin = __igt_spin_new(i915,
> - .engine = engine,
> - .dependency = obj[0].handle,
> - .flags = (IGT_SPIN_FENCE_OUT |
> - IGT_SPIN_NO_PREEMPTION));
> - obj[1] = spin->obj[1];
> - gem_execbuf(i915, &execbuf);
> - igt_assert_eq(sync_fence_status(spin->out_fence), 0);
> - igt_spin_free(i915, spin);
> -
> - for (unsigned long i = 0; i < count; i++) {
> - uint64_t addr;
> -
> - gem_read(i915, obj[0].handle, i * sizeof(addr),
> - &addr, sizeof(addr));
> -
> - igt_assert_eq_u64(addr, obj[0].offset + i * sizeof(addr));
> - }
> -
> - munmap(from_user_pointer(obj[0].relocs_ptr), reloc_sz);
> - gem_close(i915, obj[0].handle);
> -}
> -
> -static void many_active(int i915, unsigned engine)
> -{
> - const uint64_t max = 2048;
> - unsigned long count = 256;
> -
> - igt_until_timeout(2) {
> - uint64_t required, total;
> -
> - if (!__intel_check_memory(1, 8 * count, CHECK_RAM,
> - &required, &total))
> - break;
> -
> - igt_debug("Testing count:%lu\n", count);
> - __many_active(i915, engine, count);
> -
> - count <<= 1;
> - if (count >= max)
> - break;
> - }
> -}
> -
> static unsigned int offset_in_page(void *addr)
> {
> return (uintptr_t)addr & 4095;
> @@ -1053,13 +971,6 @@ igt_main
> }
> }
>
> - igt_subtest_with_dynamic("basic-many-active") {
> - __for_each_physical_engine(fd, e) {
> - igt_dynamic_f("%s", e->name)
> - many_active(fd, e->flags);
> - }
> - }
> -
> igt_subtest("invalid-domains")
> invalid_domains(fd);
>
> --
> 2.24.1
>
More information about the igt-dev
mailing list