]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/i915/selftests: Small tweak to put the termination conditions together
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 20 Nov 2020 14:03:14 +0000 (14:03 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 20 Nov 2020 16:25:23 +0000 (16:25 +0000)
If we run out of ring space, or exceed the desired runtime, we wish to
stop the subtest. Put these checks together, so that we always keep the
requests flushed on completion.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201120140314.24749-3-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/selftest_timeline.c

index 2edf2b15885f7c72e99ef5e71f457bdedbb54158..e4285d5a0360aa0e447061e8561919bcc4703968 100644 (file)
@@ -1090,12 +1090,6 @@ static int live_hwsp_read(void *arg)
                        }
                        count++;
 
-                       if (8 * watcher[1].rq->ring->emit >
-                           3 * watcher[1].rq->ring->size) {
-                               i915_request_put(rq);
-                               break;
-                       }
-
                        /* Flush the timeline before manually wrapping again */
                        if (i915_request_wait(rq,
                                              I915_WAIT_INTERRUPTIBLE,
@@ -1104,9 +1098,14 @@ static int live_hwsp_read(void *arg)
                                i915_request_put(rq);
                                goto out;
                        }
-
                        retire_requests(tl);
                        i915_request_put(rq);
+
+                       /* Single requests are limited to half a ring at most */
+                       if (8 * watcher[1].rq->ring->emit >
+                           3 * watcher[1].rq->ring->size)
+                               break;
+
                } while (!__igt_timeout(end_time, NULL));
                WRITE_ONCE(*(u32 *)tl->hwsp_seqno, 0xdeadbeef);