[i-g-t] lib/i915: Use engine discovery in gem_test_engines
diff mbox series

Message ID 20190627122552.10255-1-tvrtko.ursulin@linux.intel.com
State New
Headers show
Series
  • [i-g-t] lib/i915: Use engine discovery in gem_test_engines
Related show

Commit Message

Tvrtko Ursulin June 27, 2019, 12:25 p.m. UTC
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

If request is to verify all engines work, use the new engine discovery API
so we can actually test all.

There is a sporadic and mysterious, possibly memory corruption issue
surronding this area so lets see if this changes the pattern.

It is easy to do in this function due it re-opening the driver and
throwing it away. So there are no concerns that the modified default
context can affect any other test.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
References: https://bugzilla.freedesktop.org/show_bug.cgi?id=110667
---
 lib/i915/gem_submission.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Chris Wilson June 27, 2019, 12:55 p.m. UTC | #1
Quoting Tvrtko Ursulin (2019-06-27 13:25:52)
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> If request is to verify all engines work, use the new engine discovery API
> so we can actually test all.
> 
> There is a sporadic and mysterious, possibly memory corruption issue
> surronding this area so lets see if this changes the pattern.

While I do not think the purely on-stack parameters here are subject to
memory corruption, nor should the validation path for the execbuf
parameters be affected by suspend, if this makes the problem go away, I
can be blissfully ignorant as to what was the actual cause.

> It is easy to do in this function due it re-opening the driver and
> throwing it away. So there are no concerns that the modified default
> context can affect any other test.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> References: https://bugzilla.freedesktop.org/show_bug.cgi?id=110667
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris

Patch
diff mbox series

diff --git a/lib/i915/gem_submission.c b/lib/i915/gem_submission.c
index 2fd460d5ed2b..a8bb45c6ac8f 100644
--- a/lib/i915/gem_submission.c
+++ b/lib/i915/gem_submission.c
@@ -28,6 +28,8 @@ 
 
 #include <i915_drm.h>
 
+#include "i915/gem_engine_topology.h"
+
 #include "igt_core.h"
 #include "igt_gt.h"
 #include "igt_sysfs.h"
@@ -215,8 +217,10 @@  void gem_test_engine(int i915, unsigned int engine)
 	gem_write(i915, obj.handle, 0, &bbe, sizeof(bbe));
 
 	if (engine == ALL_ENGINES) {
-		for_each_physical_engine(i915, engine) {
-			execbuf.flags = engine;
+		const struct intel_execution_engine2 *e2;
+
+		__for_each_physical_engine(i915, e2) {
+			execbuf.flags = e2->flags;
 			gem_execbuf(i915, &execbuf);
 		}
 	} else {