public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/6] lib: Fix gem_measure_ring_inflight
@ 2019-09-02  4:15 Chris Wilson
  2019-09-02  4:15 ` [igt-dev] [PATCH i-g-t 2/6] i915/gem_ctx_shared: Prebind both context images Chris Wilson
                   ` (9 more replies)
  0 siblings, 10 replies; 16+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Tvrtko Ursulin

Any use of __for_each_physical_engine breaks library use of
for_each_physical_ring and in this case (e.g. gem_busy/close-race) leads
to GPU hangs.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Andi Shyti <andi.shyti@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 lib/i915/gem_ring.c       | 26 ++++++++++++++++----------
 lib/i915/gem_submission.h |  2 ++
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/lib/i915/gem_ring.c b/lib/i915/gem_ring.c
index bf7f439e1..272264659 100644
--- a/lib/i915/gem_ring.c
+++ b/lib/i915/gem_ring.c
@@ -21,12 +21,13 @@
  * IN THE SOFTWARE.
  */
 
-#include "gem_ring.h"
-
 #include <signal.h>
 #include <sys/ioctl.h>
 #include <sys/time.h>
 
+#include "gem_ring.h"
+#include "gem_submission.h"
+
 #include "intel_reg.h"
 #include "drmtest.h"
 #include "ioctl_wrappers.h"
@@ -140,18 +141,23 @@ __gem_measure_ring_inflight(int fd, unsigned int engine, enum measure_ring_flags
 unsigned int
 gem_measure_ring_inflight(int fd, unsigned int engine, enum measure_ring_flags flags)
 {
-	if (engine == ALL_ENGINES) {
-		unsigned int global_min = ~0u;
+	unsigned int min = ~0u;
 
+	fd = gem_reopen_driver(fd);
+
+	if (engine == ALL_ENGINES) {
 		for_each_physical_engine(fd, engine) {
-			unsigned int engine_min = __gem_measure_ring_inflight(fd, engine, flags);
+			unsigned int count =
+				__gem_measure_ring_inflight(fd, engine, flags);
 
-			if (engine_min < global_min)
-				global_min = engine_min;
+			if (count < min)
+				min = count;
 		}
-
-		return global_min;
+	} else {
+		min =  __gem_measure_ring_inflight(fd, engine, flags);
 	}
 
-	return __gem_measure_ring_inflight(fd, engine, flags);
+	close(fd);
+
+	return min;
 }
diff --git a/lib/i915/gem_submission.h b/lib/i915/gem_submission.h
index f94eabb20..1f1d63fe5 100644
--- a/lib/i915/gem_submission.h
+++ b/lib/i915/gem_submission.h
@@ -24,6 +24,8 @@
 #ifndef GEM_SUBMISSION_H
 #define GEM_SUBMISSION_H
 
+#include <stdint.h>
+
 #define GEM_SUBMISSION_SEMAPHORES	(1 << 0)
 #define GEM_SUBMISSION_EXECLISTS	(1 << 1)
 #define GEM_SUBMISSION_GUC		(1 << 2)
-- 
2.23.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2019-09-04  6:47 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-09-02  4:15 [igt-dev] [PATCH i-g-t 1/6] lib: Fix gem_measure_ring_inflight Chris Wilson
2019-09-02  4:15 ` [igt-dev] [PATCH i-g-t 2/6] i915/gem_ctx_shared: Prebind both context images Chris Wilson
2019-09-03 15:25   ` Andi Shyti
2019-09-02  4:15 ` [igt-dev] [PATCH i-g-t 3/6] i915/gem_tiled_swapped: Tweak mlocked size Chris Wilson
2019-09-03 15:32   ` Andi Shyti
2019-09-03 19:31   ` [igt-dev] [PATCH i-g-t] i915/gem_tiled_swapping: " Chris Wilson
2019-09-04  6:47     ` Andi Shyti
2019-09-02  4:15 ` [igt-dev] [PATCH i-g-t 4/6] Add i915/gem_ctx_persistence Chris Wilson
2019-09-03 17:50   ` Andi Shyti
2019-09-02  4:15 ` [Intel-gfx] [PATCH i-g-t 5/6] i915/gem_mocs_settings: Fudge gen11:vcs2 mocs register base Chris Wilson
2019-09-02  4:15 ` [igt-dev] [PATCH i-g-t 6/6] i915/gem_exec_balancer: Beware the migratory fence Chris Wilson
2019-09-02  4:49 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight Patchwork
2019-09-02  6:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-09-03 12:53 ` [igt-dev] [PATCH i-g-t 1/6] " Andi Shyti
2019-09-03 20:06 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight (rev2) Patchwork
2019-09-03 23:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox