Thread (20 messages) 20 messages, 4 authors, 2021-06-14

Re: [igt-dev] [PATCH i-g-t 2/7] Revert "test/i915/gem_exec_reloc: Restore interclient testings"

From: Jason Ekstrand <hidden>
Date: 2021-06-09 17:56:49

Reviewed-by: Jason Ekstrand <redacted>

On Tue, Jun 8, 2021 at 4:40 AM Daniel Vetter [off-list ref] wrote:
quoted hunk ↗ jump to hunk
This reverts commit cf2f41b3d3dfabaf3a4837062f996f3491a350b1.

And I mean revert with extreme prejudice because this was already
thrown out in

commit 39e9aa1032a4e60f776f34b3ccf4fb728abbfe5c
Author: Maarten Lankhorst [off-list ref]
Date:   Mon Aug 10 11:00:34 2020 +0200

    tests/i915: Remove subtests that rely on async relocation behavior

and Chris then decided to undo that without any acks from the people
who've removed these tests. Or well anyone else. Commit fights in
upstream repositories are not acceptable.

Cc: Jason Ekstrand <redacted>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Petri Latvala <redacted>
Cc: Arkadiusz Hiler <redacted>
Signed-off-by: Daniel Vetter <redacted>
---
 tests/i915/gem_exec_reloc.c | 219 ------------------------------------
 1 file changed, 219 deletions(-)
diff --git a/tests/i915/gem_exec_reloc.c b/tests/i915/gem_exec_reloc.c
index cb4899fe6e1e..efe6e2e02c52 100644
--- a/tests/i915/gem_exec_reloc.c
+++ b/tests/i915/gem_exec_reloc.c
@@ -426,76 +426,6 @@ static void many_active(int i915, unsigned engine)
        }
 }

-static void __wide_active(int i915, unsigned engine, unsigned long count)
-{
-       struct drm_i915_gem_relocation_entry *reloc =
-               calloc(count, sizeof(*reloc));
-       struct drm_i915_gem_exec_object2 *obj =
-               calloc(count + 1, sizeof(*obj));
-       struct drm_i915_gem_execbuffer2 execbuf = {
-               .buffers_ptr = to_user_pointer(obj),
-               .buffer_count = count + 1,
-               .flags = engine | I915_EXEC_HANDLE_LUT,
-       };
-       igt_spin_t *spin;
-
-       for (unsigned long i = 0; i < count; i++) {
-               obj[i].handle = gem_create(i915, 4096);
-               obj[i].flags = EXEC_OBJECT_WRITE;
-               obj[i].flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
-       }
-
-       spin = __igt_spin_new(i915,
-                             .engine = engine,
-                             .flags = (IGT_SPIN_FENCE_OUT |
-                                       IGT_SPIN_NO_PREEMPTION));
-       obj[count] = spin->obj[1];
-       gem_execbuf(i915, &execbuf); /* mark all the objects as active */
-
-       for (unsigned long i = 0; i < count; i++) {
-               reloc[i].target_handle = i;
-               reloc[i].presumed_offset = ~0ull;
-               obj[i].relocs_ptr = to_user_pointer(&reloc[i]);
-               obj[i].relocation_count = 1;
-       }
-       gem_execbuf(i915, &execbuf); /* relocation onto active objects */
-
-       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[i].handle, 0, &addr, sizeof(addr));
-               igt_assert_eq_u64(addr, obj[i].offset);
-
-               gem_close(i915, obj[i].handle);
-       }
-       free(obj);
-       free(reloc);
-}
-
-static void wide_active(int i915, unsigned engine)
-{
-       const uint64_t max = gem_aperture_size(i915) / 4096 / 2;
-       unsigned long count = 256;
-
-       igt_until_timeout(2) {
-               uint64_t required, total;
-
-               if (!__intel_check_memory(count, 4096, CHECK_RAM,
-                                         &required, &total))
-                       break;
-
-               igt_debug("Testing count:%lu\n", count);
-               __wide_active(i915, engine, count);
-
-               count <<= 1;
-               if (count >= max)
-                       break;
-       }
-}
-
 static unsigned int offset_in_page(void *addr)
 {
        return (uintptr_t)addr & 4095;
@@ -932,145 +862,6 @@ static void basic_softpin(int fd)
        gem_close(fd, obj[1].handle);
 }

-static struct drm_i915_gem_relocation_entry *
-parallel_relocs(int 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 = i;
-               reloc[i].read_domains = I915_GEM_DOMAIN_INSTRUCTION;
-               reloc[i].write_domain = 0;
-       }
-       mprotect(reloc, sz, PROT_READ);
-
-       *out = sz;
-       return reloc;
-}
-
-static int __execbuf(int i915, struct drm_i915_gem_execbuffer2 *execbuf)
-{
-       int err;
-
-       err = 0;
-       if (ioctl(i915, DRM_IOCTL_I915_GEM_EXECBUFFER2, execbuf)) {
-               err = -errno;
-               igt_assume(err);
-       }
-
-       errno = 0;
-       return err;
-}
-
-static int stop;
-static void sighandler(int sig)
-{
-       stop = 1;
-}
-
-static void parallel_child(int i915,
-                          const struct intel_execution_engine2 *engine,
-                          struct drm_i915_gem_relocation_entry *reloc,
-                          uint32_t common)
-{
-       igt_spin_t *spin = __igt_spin_new(i915, .engine = engine->flags);
-       struct drm_i915_gem_exec_object2 reloc_target = {
-               .handle = gem_create(i915, 32 * 1024 * 8),
-               .relocation_count = 32 * 1024,
-               .relocs_ptr = to_user_pointer(reloc),
-       };
-       struct drm_i915_gem_exec_object2 obj[3] = {
-               reloc_target,
-               { .handle = common },
-               spin->obj[1],
-       };
-       struct drm_i915_gem_execbuffer2 execbuf = {
-               .buffers_ptr = to_user_pointer(obj),
-               .buffer_count = ARRAY_SIZE(obj),
-               .flags = engine->flags | I915_EXEC_HANDLE_LUT,
-       };
-       struct sigaction act = {
-               .sa_handler = sighandler,
-       };
-       unsigned long count = 0;
-
-       sigaction(SIGINT, &act, NULL);
-       while (!READ_ONCE(stop)) {
-               int err = __execbuf(i915, &execbuf);
-               if (err == -EINTR)
-                       break;
-
-               igt_assert_eq(err, 0);
-               count++;
-       }
-
-       igt_info("%s: count %lu\n", engine->name, count);
-       igt_spin_free(i915, spin);
-}
-
-static void kill_children(int sig)
-{
-       signal(sig, SIG_IGN);
-       kill(-getpgrp(), SIGINT);
-       signal(sig, SIG_DFL);
-}
-
-static void parallel(int i915)
-{
-       const struct intel_execution_engine2 *e;
-       struct drm_i915_gem_relocation_entry *reloc;
-       uint32_t common = gem_create(i915, 4096);
-       uint32_t batch = batch_create(i915);
-       unsigned long reloc_sz;
-
-       reloc = parallel_relocs(32 * 1024, &reloc_sz);
-
-       stop = 0;
-       __for_each_physical_engine(i915, e) {
-               igt_fork(child, 1)
-                       parallel_child(i915, e, reloc, common);
-       }
-       sleep(2);
-
-       if (gem_scheduler_has_preemption(i915)) {
-               uint32_t ctx = gem_context_clone_with_engines(i915, 0);
-
-               __for_each_physical_engine(i915, e) {
-                       struct drm_i915_gem_exec_object2 obj[2] = {
-                               { .handle = common },
-                               { .handle = batch },
-                       };
-                       struct drm_i915_gem_execbuffer2 execbuf = {
-                               .buffers_ptr = to_user_pointer(obj),
-                               .buffer_count = ARRAY_SIZE(obj),
-                               .flags = e->flags,
-                               .rsvd1 = ctx,
-                       };
-                       gem_execbuf(i915, &execbuf);
-               }
-
-               gem_context_destroy(i915, ctx);
-       }
-       gem_sync(i915, batch);
-       gem_close(i915, batch);
-
-       kill_children(SIGINT);
-       igt_waitchildren();
-
-       gem_close(i915, common);
-       munmap(reloc, reloc_sz);
-}
-
 #define CONCURRENT 1024

 static uint64_t concurrent_relocs(int i915, int idx, int count)
@@ -1552,16 +1343,6 @@ igt_main
                }
        }

-       igt_subtest_with_dynamic("basic-wide-active") {
-               __for_each_physical_engine(fd, e) {
-                       igt_dynamic_f("%s", e->name)
-                               wide_active(fd, e->flags);
-               }
-       }
-
-       igt_subtest("basic-parallel")
-               parallel(fd);
-
        igt_subtest("basic-concurrent0")
                concurrent(fd, 0);
        igt_subtest("basic-concurrent16")
--
2.24.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help