diff mbox series

[v1,1/1] drm/i915/sleftests: live_execlists subtest faster

Message ID c57547fff1a35cbbff45205a6cc606fb97c07210.1553189717.git.caz.yokoyama@intel.com (mailing list archive)
State New, archived
Headers show
Series [v1,1/1] drm/i915/sleftests: live_execlists subtest faster | expand

Commit Message

Yokoyama, Caz March 21, 2019, 5:38 p.m. UTC
It took 35-120sec because some of engines hang up and reset.
I guess too many requests are accumulated for all
prime numbers up to 32 and detected as hangup.
By adding wait, requests are processed on each prime number and not
accumulated. The test runs for 8.5sec.

Change-Id: I0d3732a202fef90d192fb84baf8275eeadb59c02
Signed-off-by: Yokoyama, Caz <caz.yokoyama@intel.com>
---
 drivers/gpu/drm/i915/selftests/intel_lrc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Chris Wilson March 21, 2019, 5:44 p.m. UTC | #1
Quoting Yokoyama, Caz (2019-03-21 17:38:21)
> It took 35-120sec because some of engines hang up and reset.
> I guess too many requests are accumulated for all
> prime numbers up to 32 and detected as hangup.
> By adding wait, requests are processed on each prime number and not
> accumulated. The test runs for 8.5sec.

https://patchwork.freedesktop.org/series/58188/
-Chris
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/selftests/intel_lrc.c b/drivers/gpu/drm/i915/selftests/intel_lrc.c
index d61520ea03c1..16befd2a74c6 100644
--- a/drivers/gpu/drm/i915/selftests/intel_lrc.c
+++ b/drivers/gpu/drm/i915/selftests/intel_lrc.c
@@ -621,7 +621,7 @@  static int live_chain_preempt(void *arg)
 			continue;
 
 		for_each_prime_number_from(count, 1, 32) { /* must fit ring! */
-			struct i915_request *rq;
+			struct i915_request *rq, *last_rq;
 
 			rq = igt_spinner_create_request(&hi.spin,
 							hi.ctx, engine,
@@ -645,6 +645,7 @@  static int live_chain_preempt(void *arg)
 					goto err_wedged;
 				i915_request_add(rq);
 			}
+			last_rq = rq;
 
 			rq = i915_request_alloc(engine, hi.ctx);
 			if (IS_ERR(rq))
@@ -664,6 +665,7 @@  static int live_chain_preempt(void *arg)
 				goto err_wedged;
 			}
 			igt_spinner_end(&lo.spin);
+			i915_request_wait(last_rq, I915_WAIT_ALL, 5*HZ);
 		}
 	}