On 13/07/18 03:06, Chris Wilson wrote:
From: Antonio Argenziano <antonio.argenziano@xxxxxxxxx>
An hanging batch is nothing more than a spinning batch that never gets
stopped, so re-use the routines implemented in dummyload.c.
v2: Let caller decide spin loop size
v3: Only use loose loops for hangs (Chris)
v4: No requires
v5: Free the spinner
v6: Chamelium exists.
Signed-off-by: Antonio Argenziano <antonio.argenziano@xxxxxxxxx>
Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
---
/**
@@ -377,11 +329,11 @@ igt_hang_t igt_hang_ring(int fd, int ring)
*/
void igt_post_hang_ring(int fd, igt_hang_t arg)
{
- if (arg.handle == 0)
+ if (!arg.spin)
return;
- gem_sync(fd, arg.handle);
- gem_close(fd, arg.handle);
+ gem_sync(fd, arg.spin->handle); /* Wait until it hangs */
I was expecting a poll spinner + manual reset here.
+ igt_spin_batch_free(fd, arg.spin);
context_set_ban(fd, arg.ctx, arg.ban);
diff --git a/lib/igt_gt.h b/lib/igt_gt.h
+
+#define igt_list_for_each_safe(pos, tmp, head, member) \
(nitpick) extra tab.
+ for (pos = igt_list_first_entry(head, pos, member), \
+ tmp = igt_list_next_entry(pos, member); \
I trust you and the compiler got all the places that needed changing.
Reviewed-by: Antonio Argenziano <antonio.argenziano@xxxxxxxxx>
Thanks for picking-up this. At my speed it would have taken years :).
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx