[PATCH i-g-t] lib/dummyload: Control whether or not the batch is preemptible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sometimes, we do not want to allow control to escape from the spinner,
e.g. for when we want to hang the GPU inside the batch.

(Split out from the preempt-timeout test case.)

Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Antonio Argenziano <antonio.argenziano@xxxxxxxxx>
---
 lib/igt_dummyload.c | 5 ++---
 lib/igt_dummyload.h | 7 ++++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index 7beb66244..2027a4b7f 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -186,7 +186,8 @@ emit_recursive_batch(igt_spin_t *spin,
 	spin->handle = obj[BATCH].handle;
 
 	/* Allow ourselves to be preempted */
-	*batch++ = MI_ARB_CHK;
+	if (!(opts->flags & IGT_SPIN_NO_PREEMPTION))
+		*batch++ = MI_ARB_CHK;
 
 	/* Pad with a few nops so that we do not completely hog the system.
 	 *
@@ -379,8 +380,6 @@ void igt_spin_batch_end(igt_spin_t *spin)
 	if (!spin)
 		return;
 
-	igt_assert(*spin->batch == MI_ARB_CHK ||
-		   *spin->batch == MI_BATCH_BUFFER_END);
 	*spin->batch = MI_BATCH_BUFFER_END;
 	__sync_synchronize();
 }
diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
index e80a12451..38bc7682e 100644
--- a/lib/igt_dummyload.h
+++ b/lib/igt_dummyload.h
@@ -50,9 +50,10 @@ struct igt_spin_factory {
 	unsigned int flags;
 };
 
-#define IGT_SPIN_FENCE_OUT (1 << 0)
-#define IGT_SPIN_POLL_RUN  (1 << 1)
-#define IGT_SPIN_FAST      (1 << 2)
+#define IGT_SPIN_FENCE_OUT     (1 << 0)
+#define IGT_SPIN_POLL_RUN      (1 << 1)
+#define IGT_SPIN_FAST          (1 << 2)
+#define IGT_SPIN_NO_PREEMPTION (1 << 3)
 
 igt_spin_t *
 __igt_spin_batch_factory(int fd, const struct igt_spin_factory *opts);
-- 
2.18.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux