All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 1/6] lib: Fix gem_measure_ring_inflight
@ 2019-09-02  4:15 ` Chris Wilson
  0 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

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

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

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

* [igt-dev] [PATCH i-g-t 1/6] lib: Fix gem_measure_ring_inflight
@ 2019-09-02  4:15 ` Chris Wilson
  0 siblings, 0 replies; 31+ 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] 31+ messages in thread

* [PATCH i-g-t 2/6] i915/gem_ctx_shared: Prebind both context images
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
@ 2019-09-02  4:15   ` Chris Wilson
  -1 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

If we are using an aliasing-ppgtt, the context images are in the same
virtual address space as our target objects. We have to be careful that
cloning and using a new context does not evict our unreferenced target
object. To avoid that, we first bind both context images while creating
the hole in the address space to ensure that the hole is still available
later on.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_shared.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
index b073bdfc9..c9e7b8a1a 100644
--- a/tests/i915/gem_ctx_shared.c
+++ b/tests/i915/gem_ctx_shared.c
@@ -191,6 +191,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 		.buffer_count = 1,
 		.flags = ring,
 	};
+	uint32_t clone;
 	uint32_t scratch, *s;
 	uint32_t batch, cs[16];
 	uint64_t offset;
@@ -199,13 +200,18 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 	gem_require_ring(i915, ring);
 	igt_require(gem_can_store_dword(i915, ring));
 
+	clone = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
+
 	/* Find a hole big enough for both objects later */
-	scratch = gem_create(i915, 16384);
+	scratch = gem_create(i915, 64<<10);
 	gem_write(i915, scratch, 0, &bbe, sizeof(bbe));
 	obj.handle = scratch;
 	gem_execbuf(i915, &execbuf);
-	gem_close(i915, scratch);
 	obj.flags |= EXEC_OBJECT_PINNED; /* reuse this address */
+	execbuf.rsvd1 = clone; /* and bind the second context image */
+	gem_execbuf(i915, &execbuf);
+	execbuf.rsvd1 = 0;
+	gem_close(i915, scratch);
 
 	scratch = gem_create(i915, 4096);
 	s = gem_mmap__wc(i915, scratch, 0, 4096, PROT_WRITE);
@@ -241,7 +247,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 
 	obj.handle = batch;
 	obj.offset += 8192; /* make sure we don't cause an eviction! */
-	execbuf.rsvd1 = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
+	execbuf.rsvd1 = clone;
 	if (gen > 3 && gen < 6)
 		execbuf.flags |= I915_EXEC_SECURE;
 	gem_execbuf(i915, &execbuf);
@@ -253,7 +259,6 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 	execbuf.batch_start_offset = 64 * sizeof(s[0]);
 	gem_execbuf(i915, &execbuf);
 	igt_assert_eq_u64(obj.offset, offset);
-	gem_context_destroy(i915, execbuf.rsvd1);
 
 	gem_sync(i915, batch); /* write hazard lies */
 	gem_close(i915, batch);
@@ -268,6 +273,8 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 
 	munmap(s, 4096);
 	gem_close(i915, scratch);
+
+	gem_context_destroy(i915, clone);
 }
 
 static int nop_sync(int i915, uint32_t ctx, unsigned int ring, int64_t timeout)
-- 
2.23.0

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

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

* [igt-dev] [PATCH i-g-t 2/6] i915/gem_ctx_shared: Prebind both context images
@ 2019-09-02  4:15   ` Chris Wilson
  0 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

If we are using an aliasing-ppgtt, the context images are in the same
virtual address space as our target objects. We have to be careful that
cloning and using a new context does not evict our unreferenced target
object. To avoid that, we first bind both context images while creating
the hole in the address space to ensure that the hole is still available
later on.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_shared.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
index b073bdfc9..c9e7b8a1a 100644
--- a/tests/i915/gem_ctx_shared.c
+++ b/tests/i915/gem_ctx_shared.c
@@ -191,6 +191,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 		.buffer_count = 1,
 		.flags = ring,
 	};
+	uint32_t clone;
 	uint32_t scratch, *s;
 	uint32_t batch, cs[16];
 	uint64_t offset;
@@ -199,13 +200,18 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 	gem_require_ring(i915, ring);
 	igt_require(gem_can_store_dword(i915, ring));
 
+	clone = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
+
 	/* Find a hole big enough for both objects later */
-	scratch = gem_create(i915, 16384);
+	scratch = gem_create(i915, 64<<10);
 	gem_write(i915, scratch, 0, &bbe, sizeof(bbe));
 	obj.handle = scratch;
 	gem_execbuf(i915, &execbuf);
-	gem_close(i915, scratch);
 	obj.flags |= EXEC_OBJECT_PINNED; /* reuse this address */
+	execbuf.rsvd1 = clone; /* and bind the second context image */
+	gem_execbuf(i915, &execbuf);
+	execbuf.rsvd1 = 0;
+	gem_close(i915, scratch);
 
 	scratch = gem_create(i915, 4096);
 	s = gem_mmap__wc(i915, scratch, 0, 4096, PROT_WRITE);
@@ -241,7 +247,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 
 	obj.handle = batch;
 	obj.offset += 8192; /* make sure we don't cause an eviction! */
-	execbuf.rsvd1 = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
+	execbuf.rsvd1 = clone;
 	if (gen > 3 && gen < 6)
 		execbuf.flags |= I915_EXEC_SECURE;
 	gem_execbuf(i915, &execbuf);
@@ -253,7 +259,6 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 	execbuf.batch_start_offset = 64 * sizeof(s[0]);
 	gem_execbuf(i915, &execbuf);
 	igt_assert_eq_u64(obj.offset, offset);
-	gem_context_destroy(i915, execbuf.rsvd1);
 
 	gem_sync(i915, batch); /* write hazard lies */
 	gem_close(i915, batch);
@@ -268,6 +273,8 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 
 	munmap(s, 4096);
 	gem_close(i915, scratch);
+
+	gem_context_destroy(i915, clone);
 }
 
 static int nop_sync(int i915, uint32_t ctx, unsigned int ring, int64_t timeout)
-- 
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] 31+ messages in thread

* [PATCH i-g-t 3/6] i915/gem_tiled_swapped: Tweak mlocked size
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
@ 2019-09-02  4:15   ` Chris Wilson
  -1 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

On my systems with lots of memdebug enabled, we would hit the oomkiller
90% of the time during the initial mlock prior to allocating any objects
(and about 20% of the time lockup / panic). Tweak the target allocation
sizes, and include a few more breadcrumbs tracing the allocations so
that we can reliably start the tests. We still do hit our shrinker and
even the oom notifier, so still achieving its goal of exercising low
memory and swap pressure.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_tiled_swapping.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/tests/i915/gem_tiled_swapping.c b/tests/i915/gem_tiled_swapping.c
index ddf2a748f..1b70c1e51 100644
--- a/tests/i915/gem_tiled_swapping.c
+++ b/tests/i915/gem_tiled_swapping.c
@@ -165,8 +165,9 @@ static void check_memory_layout(int fd)
 
 igt_main
 {
+	unsigned long n, count;
 	struct thread *threads;
-	int fd, n, count, num_threads;
+	int fd, num_threads;
 
 	igt_fixture {
 		size_t lock_size;
@@ -179,23 +180,30 @@ igt_main
 		check_memory_layout(fd);
 
 		/* lock RAM, leaving only 512MB available */
-		lock_size = max(0, intel_get_total_ram_mb() - AVAIL_RAM);
+		count = intel_get_total_ram_mb() - intel_get_avail_ram_mb();
+		count = max(count + 64, AVAIL_RAM);
+		lock_size = max(0, intel_get_total_ram_mb() - count);
+		igt_info("Mlocking %zdMiB of %ld/%ldMiB\n",
+			 lock_size,
+			 (long)intel_get_avail_ram_mb(),
+			 (long)intel_get_total_ram_mb());
 		igt_lock_mem(lock_size);
 
 		/* need slightly more than available memory */
-		count = min(intel_get_total_ram_mb(), AVAIL_RAM) * 1.25;
+		count = intel_get_avail_ram_mb() + 128;
+		igt_info("Using %lu 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
+			 count,
+			 (long)intel_get_avail_ram_mb(),
+			 (long)intel_get_total_ram_mb(),
+			 (long)intel_get_total_swap_mb());
 		bo_handles = calloc(count, sizeof(uint32_t));
 		igt_assert(bo_handles);
 
-		num_threads = gem_available_fences(fd);
+		num_threads = gem_available_fences(fd) + 1;
+		igt_info("Using up to %d fences/threads\n", num_threads);
 		threads = calloc(num_threads, sizeof(struct thread));
 		igt_assert(threads);
 
-		igt_info("Using %d 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
-			 count,
-			 (long)intel_get_avail_ram_mb(),
-			 (long)intel_get_total_ram_mb(),
-			 (long)intel_get_total_swap_mb());
 		intel_require_memory(count, 1024*1024, CHECK_RAM | CHECK_SWAP);
 
 		for (n = 0; n < count; n++) {
-- 
2.23.0

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

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

* [igt-dev] [PATCH i-g-t 3/6] i915/gem_tiled_swapped: Tweak mlocked size
@ 2019-09-02  4:15   ` Chris Wilson
  0 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

On my systems with lots of memdebug enabled, we would hit the oomkiller
90% of the time during the initial mlock prior to allocating any objects
(and about 20% of the time lockup / panic). Tweak the target allocation
sizes, and include a few more breadcrumbs tracing the allocations so
that we can reliably start the tests. We still do hit our shrinker and
even the oom notifier, so still achieving its goal of exercising low
memory and swap pressure.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_tiled_swapping.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/tests/i915/gem_tiled_swapping.c b/tests/i915/gem_tiled_swapping.c
index ddf2a748f..1b70c1e51 100644
--- a/tests/i915/gem_tiled_swapping.c
+++ b/tests/i915/gem_tiled_swapping.c
@@ -165,8 +165,9 @@ static void check_memory_layout(int fd)
 
 igt_main
 {
+	unsigned long n, count;
 	struct thread *threads;
-	int fd, n, count, num_threads;
+	int fd, num_threads;
 
 	igt_fixture {
 		size_t lock_size;
@@ -179,23 +180,30 @@ igt_main
 		check_memory_layout(fd);
 
 		/* lock RAM, leaving only 512MB available */
-		lock_size = max(0, intel_get_total_ram_mb() - AVAIL_RAM);
+		count = intel_get_total_ram_mb() - intel_get_avail_ram_mb();
+		count = max(count + 64, AVAIL_RAM);
+		lock_size = max(0, intel_get_total_ram_mb() - count);
+		igt_info("Mlocking %zdMiB of %ld/%ldMiB\n",
+			 lock_size,
+			 (long)intel_get_avail_ram_mb(),
+			 (long)intel_get_total_ram_mb());
 		igt_lock_mem(lock_size);
 
 		/* need slightly more than available memory */
-		count = min(intel_get_total_ram_mb(), AVAIL_RAM) * 1.25;
+		count = intel_get_avail_ram_mb() + 128;
+		igt_info("Using %lu 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
+			 count,
+			 (long)intel_get_avail_ram_mb(),
+			 (long)intel_get_total_ram_mb(),
+			 (long)intel_get_total_swap_mb());
 		bo_handles = calloc(count, sizeof(uint32_t));
 		igt_assert(bo_handles);
 
-		num_threads = gem_available_fences(fd);
+		num_threads = gem_available_fences(fd) + 1;
+		igt_info("Using up to %d fences/threads\n", num_threads);
 		threads = calloc(num_threads, sizeof(struct thread));
 		igt_assert(threads);
 
-		igt_info("Using %d 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
-			 count,
-			 (long)intel_get_avail_ram_mb(),
-			 (long)intel_get_total_ram_mb(),
-			 (long)intel_get_total_swap_mb());
 		intel_require_memory(count, 1024*1024, CHECK_RAM | CHECK_SWAP);
 
 		for (n = 0; n < count; n++) {
-- 
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] 31+ messages in thread

* [PATCH i-g-t 4/6] Add i915/gem_ctx_persistence
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
@ 2019-09-02  4:15   ` Chris Wilson
  -1 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

Sanity test existing persistence and new exciting non-persistent context
behaviour.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Jon Bloomfield <jon.bloomfield@intel.com>
---
 lib/i915/gem_context.c           |  37 ++++
 lib/i915/gem_context.h           |   9 +
 lib/igt_dummyload.c              |   3 +-
 lib/ioctl_wrappers.c             |   1 +
 tests/Makefile.sources           |   3 +
 tests/i915/gem_ctx_persistence.c | 312 +++++++++++++++++++++++++++++++
 tests/meson.build                |   1 +
 7 files changed, 365 insertions(+), 1 deletion(-)
 create mode 100644 tests/i915/gem_ctx_persistence.c

diff --git a/lib/i915/gem_context.c b/lib/i915/gem_context.c
index 83c5df961..1fae5191f 100644
--- a/lib/i915/gem_context.c
+++ b/lib/i915/gem_context.c
@@ -272,6 +272,43 @@ void gem_context_set_priority(int fd, uint32_t ctx_id, int prio)
 	igt_assert_eq(__gem_context_set_priority(fd, ctx_id, prio), 0);
 }
 
+/**
+ * __gem_context_set_persistence:
+ * @i915: open i915 drm file descriptor
+ * @ctx: i915 context id
+ * @state: desired persistence
+ *
+ * Declare whether this context is allowed to persist after closing until
+ * its requests are complete (persistent=true) or if it should be
+ * immediately reaped on closing and its requests cancelled
+ * (persistent=false).
+ *
+ * Returns: An integer equal to zero for success and negative for failure
+ */
+int __gem_context_set_persistence(int i915, uint32_t ctx, bool state)
+{
+	struct drm_i915_gem_context_param p = {
+		.ctx_id = ctx,
+		.param = I915_CONTEXT_PARAM_PERSISTENCE,
+		.value = state,
+	};
+
+	return __gem_context_set_param(i915, &p);
+}
+
+/**
+ * __gem_context_set_persistence:
+ * @i915: open i915 drm file descriptor
+ * @ctx: i915 context id
+ * @state: desired persistence
+ *
+ * Like __gem_context_set_persistence(), except we assert on failure.
+ */
+void gem_context_set_persistence(int i915, uint32_t ctx, bool state)
+{
+	igt_assert_eq(__gem_context_set_persistence(i915, ctx, state), 0);
+}
+
 int
 __gem_context_clone(int i915,
 		    uint32_t src, unsigned int share,
diff --git a/lib/i915/gem_context.h b/lib/i915/gem_context.h
index 8043c3401..6745c90c3 100644
--- a/lib/i915/gem_context.h
+++ b/lib/i915/gem_context.h
@@ -24,6 +24,11 @@
 #ifndef GEM_CONTEXT_H
 #define GEM_CONTEXT_H
 
+#include <stdbool.h>
+#include <stdint.h>
+
+struct drm_i915_gem_context_param;
+
 uint32_t gem_context_create(int fd);
 int __gem_context_create(int fd, uint32_t *ctx_id);
 void gem_context_destroy(int fd, uint32_t ctx_id);
@@ -58,6 +63,10 @@ int __gem_context_get_param(int fd, struct drm_i915_gem_context_param *p);
 int __gem_context_set_priority(int fd, uint32_t ctx, int prio);
 void gem_context_set_priority(int fd, uint32_t ctx, int prio);
 
+#define I915_CONTEXT_PARAM_PERSISTENCE 0xb
+int __gem_context_set_persistence(int i915, uint32_t ctx, bool state);
+void gem_context_set_persistence(int i915, uint32_t ctx, bool state);
+
 bool gem_context_has_engine(int fd, uint32_t ctx, uint64_t engine);
 
 #endif /* GEM_CONTEXT_H */
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index 0e06276af..49aaaa9cd 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -445,7 +445,8 @@ void igt_spin_free(int fd, igt_spin_t *spin)
 		gem_close(fd, spin->poll_handle);
 	}
 
-	gem_close(fd, spin->handle);
+	if (spin->handle)
+		gem_close(fd, spin->handle);
 
 	if (spin->out_fence >= 0)
 		close(spin->out_fence);
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 280fdd624..628f8b830 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -445,6 +445,7 @@ int gem_wait(int fd, uint32_t handle, int64_t *timeout_ns)
 	ret = 0;
 	if (igt_ioctl(fd, DRM_IOCTL_I915_GEM_WAIT, &wait))
 		ret = -errno;
+	errno = 0;
 
 	if (timeout_ns)
 		*timeout_ns = wait.timeout_ns;
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index c02e4d948..fe8e221eb 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -153,6 +153,9 @@ gem_ctx_isolation_SOURCES = i915/gem_ctx_isolation.c
 TESTS_progs += gem_ctx_param
 gem_ctx_param_SOURCES = i915/gem_ctx_param.c
 
+TESTS_progs += gem_ctx_persistence
+gem_ctx_persistence_SOURCES = i915/gem_ctx_persistence.c
+
 TESTS_progs += gem_ctx_shared
 gem_ctx_shared_SOURCES = i915/gem_ctx_shared.c
 
diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
new file mode 100644
index 000000000..ecb791ded
--- /dev/null
+++ b/tests/i915/gem_ctx_persistence.c
@@ -0,0 +1,312 @@
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <errno.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "drmtest.h" /* gem_quiescent_gpu()! */
+#include "i915/gem_context.h"
+#include "i915/gem_submission.h"
+#include "igt_debugfs.h"
+#include "igt_dummyload.h"
+#include "ioctl_wrappers.h" /* gem_wait()! */
+#include "sw_sync.h"
+
+static bool has_persistence(int i915)
+{
+	struct drm_i915_gem_context_param p = {
+		.param = I915_CONTEXT_PARAM_PERSISTENCE,
+	};
+	uint64_t saved;
+
+	if (__gem_context_get_param(i915, &p))
+		return false;
+
+	saved = p.value;
+	p.value = 0;
+	if (__gem_context_set_param(i915, &p))
+		return false;
+
+	p.value = saved;
+	return __gem_context_set_param(i915, &p) == 0;
+}
+
+static void test_idempotent(int i915)
+{
+	struct drm_i915_gem_context_param p = {
+		.param = I915_CONTEXT_PARAM_PERSISTENCE,
+	};
+	int expected;
+
+	gem_context_get_param(i915, &p);
+	expected = !!p.value;
+
+	expected = !expected;
+	p.value = expected;
+	gem_context_set_param(i915, &p);
+	gem_context_get_param(i915, &p);
+	igt_assert_eq(p.value, expected);
+
+	expected = !expected; /* and restores */
+	p.value = expected;
+	gem_context_set_param(i915, &p);
+	gem_context_get_param(i915, &p);
+	igt_assert_eq(p.value, expected);
+}
+
+static void test_persistence(int i915)
+{
+	igt_spin_t *spin;
+	int64_t timeout;
+	uint32_t ctx;
+
+	ctx = gem_context_create(i915);
+	gem_context_set_persistence(i915, ctx, true);
+
+	spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
+	gem_context_destroy(i915, ctx);
+
+	timeout = NSEC_PER_SEC / 5;
+	igt_assert_eq(gem_wait(i915, spin->handle, &timeout), -ETIME);
+
+	igt_spin_end(spin);
+
+	timeout = NSEC_PER_SEC / 5;
+	igt_assert_eq(gem_wait(i915, spin->handle, &timeout), 0);
+	igt_assert_eq(sync_fence_status(spin->out_fence), 1);
+
+	igt_spin_free(i915, spin);
+	gem_quiescent_gpu(i915);
+}
+
+static void test_nonpersistent_cleanup(int i915)
+{
+	int64_t timeout = NSEC_PER_SEC / 5;
+	igt_spin_t *spin;
+	uint32_t ctx;
+
+	ctx = gem_context_create(i915);
+	gem_context_set_persistence(i915, ctx, false);
+
+	spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
+	gem_context_destroy(i915, ctx);
+
+	igt_assert_eq(gem_wait(i915, spin->handle, &timeout), 0);
+	igt_assert_eq(sync_fence_status(spin->out_fence), -EIO);
+
+	igt_spin_free(i915, spin);
+	gem_quiescent_gpu(i915);
+}
+
+static void test_nonpersistent_mixed(int i915)
+{
+	int fence[3];
+
+	for (int i = 0; i < ARRAY_SIZE(fence); i++) {
+		igt_spin_t *spin;
+		uint32_t ctx;
+
+		ctx = gem_context_create(i915);
+		gem_context_set_persistence(i915, ctx, i & 1);
+
+		spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
+		gem_context_destroy(i915, ctx);
+
+		fence[i] = spin->out_fence;
+	}
+
+	/* Outer pair of contexts were non-persistent and killed */
+	igt_assert_eq(sync_fence_wait(fence[0], MSEC_PER_SEC / 5), 0);
+	igt_assert_eq(sync_fence_status(fence[0]), -EIO);
+
+	igt_assert_eq(sync_fence_wait(fence[2], MSEC_PER_SEC / 5), 0);
+	igt_assert_eq(sync_fence_status(fence[2]), -EIO);
+
+	/* But the middle context is still running */
+	igt_assert_eq(sync_fence_wait(fence[1], 0), -ETIME);
+
+	gem_quiescent_gpu(i915);
+}
+
+static void test_nonpersistent_hostile(int i915)
+{
+	int64_t timeout = NSEC_PER_SEC / 2;
+	igt_spin_t *spin;
+	uint32_t ctx;
+
+	ctx = gem_context_create(i915);
+	gem_context_set_persistence(i915, ctx, false);
+
+	spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_NO_PREEMPTION);
+	gem_context_destroy(i915, ctx);
+
+	igt_assert_eq(gem_wait(i915, spin->handle, &timeout), 0);
+
+	igt_spin_free(i915, spin);
+	gem_quiescent_gpu(i915);
+}
+
+static void test_nonpersistent_file(int i915)
+{
+	igt_spin_t *spin;
+	uint32_t ctx;
+
+	i915 = gem_reopen_driver(i915);
+
+	ctx = gem_context_create(i915);
+	gem_context_set_persistence(i915, ctx, false);
+
+	spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
+	close(i915);
+
+	igt_assert_eq(sync_fence_wait(spin->out_fence, MSEC_PER_SEC / 5), 0);
+	igt_assert_eq(sync_fence_status(spin->out_fence), -EIO);
+
+	spin->handle = 0;
+	igt_spin_free(-1, spin);
+}
+
+static void sendfd(int socket, int fd)
+{
+	char buf[CMSG_SPACE(sizeof(fd))];
+	struct iovec io = { .iov_base = (char *)"ABC", .iov_len = 3 };
+	struct msghdr msg = {
+		.msg_iov = &io,
+		.msg_iovlen = 1,
+		.msg_control = buf,
+		.msg_controllen = CMSG_LEN(sizeof(fd)),
+	};
+	struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg);
+
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_RIGHTS;
+	cmsg->cmsg_len = msg.msg_controllen;
+	*(int *)CMSG_DATA(cmsg) = fd;
+
+	igt_assert(sendmsg(socket, &msg, 0) != -1);
+}
+
+static int recvfd(int socket)
+{
+	char m_buffer[256], c_buffer[256];
+	struct iovec io = {
+		.iov_base = m_buffer,
+		.iov_len = sizeof(m_buffer),
+	};
+	struct msghdr msg = {
+		.msg_iov = &io,
+		.msg_iovlen = 1,
+		.msg_control = c_buffer,
+		.msg_controllen = sizeof(c_buffer),
+	};
+
+	igt_assert(recvmsg(socket, &msg, 0) != -1);
+	return *(int *)CMSG_DATA(CMSG_FIRSTHDR(&msg));
+}
+
+static void test_nonpersistent_process(int i915)
+{
+	int fence[2], sv[2];
+
+	igt_require(socketpair(AF_UNIX, SOCK_DGRAM, 0, sv) == 0);
+
+	igt_fork(child, 1) {
+		i915 = gem_reopen_driver(i915);
+
+		for (int persists = 0; persists <= 1; persists++) {
+			igt_spin_t *spin;
+			uint32_t ctx;
+
+			ctx = gem_context_create(i915);
+			gem_context_set_persistence(i915, ctx, persists);
+
+			spin = igt_spin_new(i915, ctx,
+					    .flags = IGT_SPIN_FENCE_OUT);
+
+			sendfd(sv[0], spin->out_fence);
+
+			igt_list_del(&spin->link); /* prevent autocleanup */
+		}
+	}
+	close(sv[0]);
+	igt_waitchildren();
+
+	fence[0] = recvfd(sv[1]);
+	fence[1] = recvfd(sv[1]);
+	close(sv[1]);
+
+	/* First fence is non-persistent, so should be reset */
+	igt_assert_eq(sync_fence_wait(fence[0], MSEC_PER_SEC / 5), 0);
+	igt_assert_eq(sync_fence_status(fence[0]), -EIO);
+	close(fence[0]);
+
+	/* Second fence is persistent, so should be still spinning */
+	igt_assert_eq(sync_fence_wait(fence[1], 0), -ETIME);
+	close(fence[1]);
+
+	/* We have to manually clean up the orphaned spinner */
+	igt_drop_caches_set(i915, DROP_RESET_ACTIVE);
+
+	gem_quiescent_gpu(i915);
+}
+
+igt_main
+{
+	int i915;
+
+	igt_fixture {
+		i915 = drm_open_driver(DRIVER_INTEL);
+		igt_require_gem(i915);
+
+		igt_require(has_persistence(i915));
+	}
+
+	igt_subtest_group {
+		igt_subtest("idempotent")
+			test_idempotent(i915);
+
+		igt_subtest("persistence")
+			test_persistence(i915);
+
+		igt_subtest("cleanup")
+			test_nonpersistent_cleanup(i915);
+
+		igt_subtest("mixed")
+			test_nonpersistent_mixed(i915);
+
+		igt_subtest("hostile")
+			test_nonpersistent_hostile(i915);
+
+		igt_subtest("file")
+			test_nonpersistent_file(i915);
+
+		igt_subtest("process")
+			test_nonpersistent_process(i915);
+	}
+
+	igt_fixture {
+		close(i915);
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index a7b2b3221..052375a15 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -120,6 +120,7 @@ i915_progs = [
 	'gem_ctx_exec',
 	'gem_ctx_isolation',
 	'gem_ctx_param',
+	'gem_ctx_persistence',
 	'gem_ctx_shared',
 	'gem_ctx_switch',
 	'gem_ctx_thrash',
-- 
2.23.0

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

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

* [igt-dev] [PATCH i-g-t 4/6] Add i915/gem_ctx_persistence
@ 2019-09-02  4:15   ` Chris Wilson
  0 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Jon Bloomfield

Sanity test existing persistence and new exciting non-persistent context
behaviour.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Jon Bloomfield <jon.bloomfield@intel.com>
---
 lib/i915/gem_context.c           |  37 ++++
 lib/i915/gem_context.h           |   9 +
 lib/igt_dummyload.c              |   3 +-
 lib/ioctl_wrappers.c             |   1 +
 tests/Makefile.sources           |   3 +
 tests/i915/gem_ctx_persistence.c | 312 +++++++++++++++++++++++++++++++
 tests/meson.build                |   1 +
 7 files changed, 365 insertions(+), 1 deletion(-)
 create mode 100644 tests/i915/gem_ctx_persistence.c

diff --git a/lib/i915/gem_context.c b/lib/i915/gem_context.c
index 83c5df961..1fae5191f 100644
--- a/lib/i915/gem_context.c
+++ b/lib/i915/gem_context.c
@@ -272,6 +272,43 @@ void gem_context_set_priority(int fd, uint32_t ctx_id, int prio)
 	igt_assert_eq(__gem_context_set_priority(fd, ctx_id, prio), 0);
 }
 
+/**
+ * __gem_context_set_persistence:
+ * @i915: open i915 drm file descriptor
+ * @ctx: i915 context id
+ * @state: desired persistence
+ *
+ * Declare whether this context is allowed to persist after closing until
+ * its requests are complete (persistent=true) or if it should be
+ * immediately reaped on closing and its requests cancelled
+ * (persistent=false).
+ *
+ * Returns: An integer equal to zero for success and negative for failure
+ */
+int __gem_context_set_persistence(int i915, uint32_t ctx, bool state)
+{
+	struct drm_i915_gem_context_param p = {
+		.ctx_id = ctx,
+		.param = I915_CONTEXT_PARAM_PERSISTENCE,
+		.value = state,
+	};
+
+	return __gem_context_set_param(i915, &p);
+}
+
+/**
+ * __gem_context_set_persistence:
+ * @i915: open i915 drm file descriptor
+ * @ctx: i915 context id
+ * @state: desired persistence
+ *
+ * Like __gem_context_set_persistence(), except we assert on failure.
+ */
+void gem_context_set_persistence(int i915, uint32_t ctx, bool state)
+{
+	igt_assert_eq(__gem_context_set_persistence(i915, ctx, state), 0);
+}
+
 int
 __gem_context_clone(int i915,
 		    uint32_t src, unsigned int share,
diff --git a/lib/i915/gem_context.h b/lib/i915/gem_context.h
index 8043c3401..6745c90c3 100644
--- a/lib/i915/gem_context.h
+++ b/lib/i915/gem_context.h
@@ -24,6 +24,11 @@
 #ifndef GEM_CONTEXT_H
 #define GEM_CONTEXT_H
 
+#include <stdbool.h>
+#include <stdint.h>
+
+struct drm_i915_gem_context_param;
+
 uint32_t gem_context_create(int fd);
 int __gem_context_create(int fd, uint32_t *ctx_id);
 void gem_context_destroy(int fd, uint32_t ctx_id);
@@ -58,6 +63,10 @@ int __gem_context_get_param(int fd, struct drm_i915_gem_context_param *p);
 int __gem_context_set_priority(int fd, uint32_t ctx, int prio);
 void gem_context_set_priority(int fd, uint32_t ctx, int prio);
 
+#define I915_CONTEXT_PARAM_PERSISTENCE 0xb
+int __gem_context_set_persistence(int i915, uint32_t ctx, bool state);
+void gem_context_set_persistence(int i915, uint32_t ctx, bool state);
+
 bool gem_context_has_engine(int fd, uint32_t ctx, uint64_t engine);
 
 #endif /* GEM_CONTEXT_H */
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index 0e06276af..49aaaa9cd 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -445,7 +445,8 @@ void igt_spin_free(int fd, igt_spin_t *spin)
 		gem_close(fd, spin->poll_handle);
 	}
 
-	gem_close(fd, spin->handle);
+	if (spin->handle)
+		gem_close(fd, spin->handle);
 
 	if (spin->out_fence >= 0)
 		close(spin->out_fence);
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 280fdd624..628f8b830 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -445,6 +445,7 @@ int gem_wait(int fd, uint32_t handle, int64_t *timeout_ns)
 	ret = 0;
 	if (igt_ioctl(fd, DRM_IOCTL_I915_GEM_WAIT, &wait))
 		ret = -errno;
+	errno = 0;
 
 	if (timeout_ns)
 		*timeout_ns = wait.timeout_ns;
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index c02e4d948..fe8e221eb 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -153,6 +153,9 @@ gem_ctx_isolation_SOURCES = i915/gem_ctx_isolation.c
 TESTS_progs += gem_ctx_param
 gem_ctx_param_SOURCES = i915/gem_ctx_param.c
 
+TESTS_progs += gem_ctx_persistence
+gem_ctx_persistence_SOURCES = i915/gem_ctx_persistence.c
+
 TESTS_progs += gem_ctx_shared
 gem_ctx_shared_SOURCES = i915/gem_ctx_shared.c
 
diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
new file mode 100644
index 000000000..ecb791ded
--- /dev/null
+++ b/tests/i915/gem_ctx_persistence.c
@@ -0,0 +1,312 @@
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <errno.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "drmtest.h" /* gem_quiescent_gpu()! */
+#include "i915/gem_context.h"
+#include "i915/gem_submission.h"
+#include "igt_debugfs.h"
+#include "igt_dummyload.h"
+#include "ioctl_wrappers.h" /* gem_wait()! */
+#include "sw_sync.h"
+
+static bool has_persistence(int i915)
+{
+	struct drm_i915_gem_context_param p = {
+		.param = I915_CONTEXT_PARAM_PERSISTENCE,
+	};
+	uint64_t saved;
+
+	if (__gem_context_get_param(i915, &p))
+		return false;
+
+	saved = p.value;
+	p.value = 0;
+	if (__gem_context_set_param(i915, &p))
+		return false;
+
+	p.value = saved;
+	return __gem_context_set_param(i915, &p) == 0;
+}
+
+static void test_idempotent(int i915)
+{
+	struct drm_i915_gem_context_param p = {
+		.param = I915_CONTEXT_PARAM_PERSISTENCE,
+	};
+	int expected;
+
+	gem_context_get_param(i915, &p);
+	expected = !!p.value;
+
+	expected = !expected;
+	p.value = expected;
+	gem_context_set_param(i915, &p);
+	gem_context_get_param(i915, &p);
+	igt_assert_eq(p.value, expected);
+
+	expected = !expected; /* and restores */
+	p.value = expected;
+	gem_context_set_param(i915, &p);
+	gem_context_get_param(i915, &p);
+	igt_assert_eq(p.value, expected);
+}
+
+static void test_persistence(int i915)
+{
+	igt_spin_t *spin;
+	int64_t timeout;
+	uint32_t ctx;
+
+	ctx = gem_context_create(i915);
+	gem_context_set_persistence(i915, ctx, true);
+
+	spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
+	gem_context_destroy(i915, ctx);
+
+	timeout = NSEC_PER_SEC / 5;
+	igt_assert_eq(gem_wait(i915, spin->handle, &timeout), -ETIME);
+
+	igt_spin_end(spin);
+
+	timeout = NSEC_PER_SEC / 5;
+	igt_assert_eq(gem_wait(i915, spin->handle, &timeout), 0);
+	igt_assert_eq(sync_fence_status(spin->out_fence), 1);
+
+	igt_spin_free(i915, spin);
+	gem_quiescent_gpu(i915);
+}
+
+static void test_nonpersistent_cleanup(int i915)
+{
+	int64_t timeout = NSEC_PER_SEC / 5;
+	igt_spin_t *spin;
+	uint32_t ctx;
+
+	ctx = gem_context_create(i915);
+	gem_context_set_persistence(i915, ctx, false);
+
+	spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
+	gem_context_destroy(i915, ctx);
+
+	igt_assert_eq(gem_wait(i915, spin->handle, &timeout), 0);
+	igt_assert_eq(sync_fence_status(spin->out_fence), -EIO);
+
+	igt_spin_free(i915, spin);
+	gem_quiescent_gpu(i915);
+}
+
+static void test_nonpersistent_mixed(int i915)
+{
+	int fence[3];
+
+	for (int i = 0; i < ARRAY_SIZE(fence); i++) {
+		igt_spin_t *spin;
+		uint32_t ctx;
+
+		ctx = gem_context_create(i915);
+		gem_context_set_persistence(i915, ctx, i & 1);
+
+		spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
+		gem_context_destroy(i915, ctx);
+
+		fence[i] = spin->out_fence;
+	}
+
+	/* Outer pair of contexts were non-persistent and killed */
+	igt_assert_eq(sync_fence_wait(fence[0], MSEC_PER_SEC / 5), 0);
+	igt_assert_eq(sync_fence_status(fence[0]), -EIO);
+
+	igt_assert_eq(sync_fence_wait(fence[2], MSEC_PER_SEC / 5), 0);
+	igt_assert_eq(sync_fence_status(fence[2]), -EIO);
+
+	/* But the middle context is still running */
+	igt_assert_eq(sync_fence_wait(fence[1], 0), -ETIME);
+
+	gem_quiescent_gpu(i915);
+}
+
+static void test_nonpersistent_hostile(int i915)
+{
+	int64_t timeout = NSEC_PER_SEC / 2;
+	igt_spin_t *spin;
+	uint32_t ctx;
+
+	ctx = gem_context_create(i915);
+	gem_context_set_persistence(i915, ctx, false);
+
+	spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_NO_PREEMPTION);
+	gem_context_destroy(i915, ctx);
+
+	igt_assert_eq(gem_wait(i915, spin->handle, &timeout), 0);
+
+	igt_spin_free(i915, spin);
+	gem_quiescent_gpu(i915);
+}
+
+static void test_nonpersistent_file(int i915)
+{
+	igt_spin_t *spin;
+	uint32_t ctx;
+
+	i915 = gem_reopen_driver(i915);
+
+	ctx = gem_context_create(i915);
+	gem_context_set_persistence(i915, ctx, false);
+
+	spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_FENCE_OUT);
+	close(i915);
+
+	igt_assert_eq(sync_fence_wait(spin->out_fence, MSEC_PER_SEC / 5), 0);
+	igt_assert_eq(sync_fence_status(spin->out_fence), -EIO);
+
+	spin->handle = 0;
+	igt_spin_free(-1, spin);
+}
+
+static void sendfd(int socket, int fd)
+{
+	char buf[CMSG_SPACE(sizeof(fd))];
+	struct iovec io = { .iov_base = (char *)"ABC", .iov_len = 3 };
+	struct msghdr msg = {
+		.msg_iov = &io,
+		.msg_iovlen = 1,
+		.msg_control = buf,
+		.msg_controllen = CMSG_LEN(sizeof(fd)),
+	};
+	struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg);
+
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_RIGHTS;
+	cmsg->cmsg_len = msg.msg_controllen;
+	*(int *)CMSG_DATA(cmsg) = fd;
+
+	igt_assert(sendmsg(socket, &msg, 0) != -1);
+}
+
+static int recvfd(int socket)
+{
+	char m_buffer[256], c_buffer[256];
+	struct iovec io = {
+		.iov_base = m_buffer,
+		.iov_len = sizeof(m_buffer),
+	};
+	struct msghdr msg = {
+		.msg_iov = &io,
+		.msg_iovlen = 1,
+		.msg_control = c_buffer,
+		.msg_controllen = sizeof(c_buffer),
+	};
+
+	igt_assert(recvmsg(socket, &msg, 0) != -1);
+	return *(int *)CMSG_DATA(CMSG_FIRSTHDR(&msg));
+}
+
+static void test_nonpersistent_process(int i915)
+{
+	int fence[2], sv[2];
+
+	igt_require(socketpair(AF_UNIX, SOCK_DGRAM, 0, sv) == 0);
+
+	igt_fork(child, 1) {
+		i915 = gem_reopen_driver(i915);
+
+		for (int persists = 0; persists <= 1; persists++) {
+			igt_spin_t *spin;
+			uint32_t ctx;
+
+			ctx = gem_context_create(i915);
+			gem_context_set_persistence(i915, ctx, persists);
+
+			spin = igt_spin_new(i915, ctx,
+					    .flags = IGT_SPIN_FENCE_OUT);
+
+			sendfd(sv[0], spin->out_fence);
+
+			igt_list_del(&spin->link); /* prevent autocleanup */
+		}
+	}
+	close(sv[0]);
+	igt_waitchildren();
+
+	fence[0] = recvfd(sv[1]);
+	fence[1] = recvfd(sv[1]);
+	close(sv[1]);
+
+	/* First fence is non-persistent, so should be reset */
+	igt_assert_eq(sync_fence_wait(fence[0], MSEC_PER_SEC / 5), 0);
+	igt_assert_eq(sync_fence_status(fence[0]), -EIO);
+	close(fence[0]);
+
+	/* Second fence is persistent, so should be still spinning */
+	igt_assert_eq(sync_fence_wait(fence[1], 0), -ETIME);
+	close(fence[1]);
+
+	/* We have to manually clean up the orphaned spinner */
+	igt_drop_caches_set(i915, DROP_RESET_ACTIVE);
+
+	gem_quiescent_gpu(i915);
+}
+
+igt_main
+{
+	int i915;
+
+	igt_fixture {
+		i915 = drm_open_driver(DRIVER_INTEL);
+		igt_require_gem(i915);
+
+		igt_require(has_persistence(i915));
+	}
+
+	igt_subtest_group {
+		igt_subtest("idempotent")
+			test_idempotent(i915);
+
+		igt_subtest("persistence")
+			test_persistence(i915);
+
+		igt_subtest("cleanup")
+			test_nonpersistent_cleanup(i915);
+
+		igt_subtest("mixed")
+			test_nonpersistent_mixed(i915);
+
+		igt_subtest("hostile")
+			test_nonpersistent_hostile(i915);
+
+		igt_subtest("file")
+			test_nonpersistent_file(i915);
+
+		igt_subtest("process")
+			test_nonpersistent_process(i915);
+	}
+
+	igt_fixture {
+		close(i915);
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index a7b2b3221..052375a15 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -120,6 +120,7 @@ i915_progs = [
 	'gem_ctx_exec',
 	'gem_ctx_isolation',
 	'gem_ctx_param',
+	'gem_ctx_persistence',
 	'gem_ctx_shared',
 	'gem_ctx_switch',
 	'gem_ctx_thrash',
-- 
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] 31+ messages in thread

* [PATCH i-g-t 5/6] i915/gem_mocs_settings: Fudge gen11:vcs2 mocs register base
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
@ 2019-09-02  4:15   ` Chris Wilson
  -1 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

On gen11 CI, we have vcs2 available which has a different base to gen9
vcs1. Gloss over the discrepancy while a proper fix is sought.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111330
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_mocs_settings.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/tests/i915/gem_mocs_settings.c b/tests/i915/gem_mocs_settings.c
index 3ad941491..06240877e 100644
--- a/tests/i915/gem_mocs_settings.c
+++ b/tests/i915/gem_mocs_settings.c
@@ -62,6 +62,7 @@ static const char * const test_modes[] = {
 #define GEN9_MFX0_MOCS_0	(0xc900)	/* Media 0 MOCS base register*/
 #define GEN9_MFX1_MOCS_0	(0xcA00)	/* Media 1 MOCS base register*/
 #define GEN9_VEBOX_MOCS_0	(0xcB00)	/* Video MOCS base register*/
+#define GEN11_MFX2_MOCS_0	(0x10000)
 #define GEN9_BLT_MOCS_0		(0xcc00)	/* Blitter MOCS base register*/
 #define GEN12_GLOBAL_MOCS	(0x4000)
 #define ICELAKE_MOCS_PTE	{0x00000004, 0x0030, 0x1}
@@ -216,12 +217,27 @@ static uint32_t get_engine_base(int fd, uint32_t engine)
 		return GEN12_GLOBAL_MOCS;
 
 	switch (engine) {
-	case LOCAL_I915_EXEC_BSD1:	return GEN9_MFX0_MOCS_0;
-	case LOCAL_I915_EXEC_BSD2:	return GEN9_MFX1_MOCS_0;
-	case I915_EXEC_RENDER:		return GEN9_GFX_MOCS_0;
-	case I915_EXEC_BLT:		return GEN9_BLT_MOCS_0;
-	case I915_EXEC_VEBOX:		return GEN9_VEBOX_MOCS_0;
-	default:			return 0;
+	case LOCAL_I915_EXEC_BSD1:
+		return GEN9_MFX0_MOCS_0;
+
+	case LOCAL_I915_EXEC_BSD2:
+		if (intel_gen(intel_get_drm_devid(fd)) >= 11)
+			/* i915_query to find correct HW base */
+			return GEN11_MFX2_MOCS_0;
+		else
+			return GEN9_MFX1_MOCS_0;
+
+	case I915_EXEC_RENDER:
+		return GEN9_GFX_MOCS_0;
+
+	case I915_EXEC_BLT:
+		return GEN9_BLT_MOCS_0;
+
+	case I915_EXEC_VEBOX:
+		return GEN9_VEBOX_MOCS_0;
+
+	default:
+		return 0;
 	}
 }
 
-- 
2.23.0

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

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

* [Intel-gfx] [PATCH i-g-t 5/6] i915/gem_mocs_settings: Fudge gen11:vcs2 mocs register base
@ 2019-09-02  4:15   ` Chris Wilson
  0 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

On gen11 CI, we have vcs2 available which has a different base to gen9
vcs1. Gloss over the discrepancy while a proper fix is sought.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111330
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_mocs_settings.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/tests/i915/gem_mocs_settings.c b/tests/i915/gem_mocs_settings.c
index 3ad941491..06240877e 100644
--- a/tests/i915/gem_mocs_settings.c
+++ b/tests/i915/gem_mocs_settings.c
@@ -62,6 +62,7 @@ static const char * const test_modes[] = {
 #define GEN9_MFX0_MOCS_0	(0xc900)	/* Media 0 MOCS base register*/
 #define GEN9_MFX1_MOCS_0	(0xcA00)	/* Media 1 MOCS base register*/
 #define GEN9_VEBOX_MOCS_0	(0xcB00)	/* Video MOCS base register*/
+#define GEN11_MFX2_MOCS_0	(0x10000)
 #define GEN9_BLT_MOCS_0		(0xcc00)	/* Blitter MOCS base register*/
 #define GEN12_GLOBAL_MOCS	(0x4000)
 #define ICELAKE_MOCS_PTE	{0x00000004, 0x0030, 0x1}
@@ -216,12 +217,27 @@ static uint32_t get_engine_base(int fd, uint32_t engine)
 		return GEN12_GLOBAL_MOCS;
 
 	switch (engine) {
-	case LOCAL_I915_EXEC_BSD1:	return GEN9_MFX0_MOCS_0;
-	case LOCAL_I915_EXEC_BSD2:	return GEN9_MFX1_MOCS_0;
-	case I915_EXEC_RENDER:		return GEN9_GFX_MOCS_0;
-	case I915_EXEC_BLT:		return GEN9_BLT_MOCS_0;
-	case I915_EXEC_VEBOX:		return GEN9_VEBOX_MOCS_0;
-	default:			return 0;
+	case LOCAL_I915_EXEC_BSD1:
+		return GEN9_MFX0_MOCS_0;
+
+	case LOCAL_I915_EXEC_BSD2:
+		if (intel_gen(intel_get_drm_devid(fd)) >= 11)
+			/* i915_query to find correct HW base */
+			return GEN11_MFX2_MOCS_0;
+		else
+			return GEN9_MFX1_MOCS_0;
+
+	case I915_EXEC_RENDER:
+		return GEN9_GFX_MOCS_0;
+
+	case I915_EXEC_BLT:
+		return GEN9_BLT_MOCS_0;
+
+	case I915_EXEC_VEBOX:
+		return GEN9_VEBOX_MOCS_0;
+
+	default:
+		return 0;
 	}
 }
 
-- 
2.23.0

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

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

* [PATCH i-g-t 6/6] i915/gem_exec_balancer: Beware the migratory fence
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
@ 2019-09-02  4:15   ` Chris Wilson
  -1 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

If the object needs to be migrated, it may will need GPU relocs and so
have an exclusive fence showing up in the write domain.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_exec_balancer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index cda156ea6..407dc0eca 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -830,10 +830,10 @@ static void busy(int i915)
 		do_ioctl(i915, DRM_IOCTL_I915_GEM_BUSY, &busy);
 		igt_assert_eq_u32(busy.busy, 1u << (class + 16));
 
-		/* Queued(read): expected class */
+		/* Queued(read, maybe write if being migrated): expected class */
 		busy.handle = spin[1]->handle;
 		do_ioctl(i915, DRM_IOCTL_I915_GEM_BUSY, &busy);
-		igt_assert_eq_u32(busy.busy, 1u << (class + 16));
+		igt_assert_eq_u32(busy.busy & 0xffff << 16, 1u << (class + 16));
 
 		/* Queued(write): expected class */
 		busy.handle = scratch;
-- 
2.23.0

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

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

* [igt-dev] [PATCH i-g-t 6/6] i915/gem_exec_balancer: Beware the migratory fence
@ 2019-09-02  4:15   ` Chris Wilson
  0 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-02  4:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

If the object needs to be migrated, it may will need GPU relocs and so
have an exclusive fence showing up in the write domain.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_exec_balancer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index cda156ea6..407dc0eca 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -830,10 +830,10 @@ static void busy(int i915)
 		do_ioctl(i915, DRM_IOCTL_I915_GEM_BUSY, &busy);
 		igt_assert_eq_u32(busy.busy, 1u << (class + 16));
 
-		/* Queued(read): expected class */
+		/* Queued(read, maybe write if being migrated): expected class */
 		busy.handle = spin[1]->handle;
 		do_ioctl(i915, DRM_IOCTL_I915_GEM_BUSY, &busy);
-		igt_assert_eq_u32(busy.busy, 1u << (class + 16));
+		igt_assert_eq_u32(busy.busy & 0xffff << 16, 1u << (class + 16));
 
 		/* Queued(write): expected class */
 		busy.handle = scratch;
-- 
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] 31+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
                   ` (5 preceding siblings ...)
  (?)
@ 2019-09-02  4:49 ` Patchwork
  -1 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-09-02  4:49 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight
URL   : https://patchwork.freedesktop.org/series/66110/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6818 -> IGTPW_3410
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/66110/revisions/1/mbox/

Known issues
------------

  Here are the changes found in IGTPW_3410 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_create@basic-files:
    - fi-bxt-dsi:         [PASS][1] -> [INCOMPLETE][2] ([fdo#103927])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/fi-bxt-dsi/igt@gem_ctx_create@basic-files.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/fi-bxt-dsi/igt@gem_ctx_create@basic-files.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-blb-e6850:       [INCOMPLETE][3] ([fdo#107718]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html

  * igt@kms_chamelium@dp-crc-fast:
    - {fi-icl-u4}:        [FAIL][5] ([fdo#111045]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/fi-icl-u4/igt@kms_chamelium@dp-crc-fast.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/fi-icl-u4/igt@kms_chamelium@dp-crc-fast.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u3:          [FAIL][7] ([fdo#103167]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html

  
#### Warnings ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][9] ([fdo#111096]) -> [FAIL][10] ([fdo#111407])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111381]: https://bugs.freedesktop.org/show_bug.cgi?id=111381
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407


Participating hosts (50 -> 43)
------------------------------

  Additional (1): fi-kbl-soraka 
  Missing    (8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-apl-guc fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5162 -> IGTPW_3410

  CI-20190529: 20190529
  CI_DRM_6818: c914252ce49ad246ccf5b23b8627319fdf5ff995 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3410: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/
  IGT_5162: e62ea305fdba2a9cd0dadfa527b54529cb0d1438 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_persistence@cleanup
+igt@gem_ctx_persistence@file
+igt@gem_ctx_persistence@hostile
+igt@gem_ctx_persistence@idempotent
+igt@gem_ctx_persistence@mixed
+igt@gem_ctx_persistence@persistence
+igt@gem_ctx_persistence@process

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
                   ` (6 preceding siblings ...)
  (?)
@ 2019-09-02  6:27 ` Patchwork
  -1 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-09-02  6:27 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight
URL   : https://patchwork.freedesktop.org/series/66110/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6818_full -> IGTPW_3410_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/66110/revisions/1/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_3410_full:

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_persistence@process} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][1] +6 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb6/igt@gem_ctx_persistence@process.html

  
New tests
---------

  New tests have been introduced between CI_DRM_6818_full and IGTPW_3410_full:

### New IGT tests (7) ###

  * igt@gem_ctx_persistence@cleanup:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@file:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@hostile:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@idempotent:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@mixed:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@persistence:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@process:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_3410_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-suspend:
    - shard-apl:          [PASS][2] -> [DMESG-WARN][3] ([fdo#108566]) +5 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-apl7/igt@gem_eio@in-flight-suspend.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-apl8/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_schedule@pi-ringfull-bsd:
    - shard-iclb:         [PASS][4] -> [SKIP][5] ([fdo#111325]) +4 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb7/igt@gem_exec_schedule@pi-ringfull-bsd.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb1/igt@gem_exec_schedule@pi-ringfull-bsd.html

  * igt@gem_exec_schedule@preempt-bsd1:
    - shard-iclb:         [PASS][6] -> [SKIP][7] ([fdo#109276]) +15 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb2/igt@gem_exec_schedule@preempt-bsd1.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb7/igt@gem_exec_schedule@preempt-bsd1.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [PASS][8] -> [FAIL][9] ([fdo#105767])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_flip@dpms-vs-vblank-race-interruptible:
    - shard-apl:          [PASS][10] -> [FAIL][11] ([fdo#103060])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-apl1/igt@kms_flip@dpms-vs-vblank-race-interruptible.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-apl2/igt@kms_flip@dpms-vs-vblank-race-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt:
    - shard-glk:          [PASS][12] -> [FAIL][13] ([fdo#103167])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-glk7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-glk1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-iclb:         [PASS][14] -> [FAIL][15] ([fdo#103167]) +3 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-iclb:         [PASS][16] -> [FAIL][17] ([fdo#103166])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb4/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-y.html

  * igt@kms_psr@psr2_suspend:
    - shard-iclb:         [PASS][18] -> [SKIP][19] ([fdo#109441]) +3 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb2/igt@kms_psr@psr2_suspend.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb1/igt@kms_psr@psr2_suspend.html

  
#### Possible fixes ####

  * igt@gem_ctx_switch@legacy-bsd2-heavy:
    - shard-iclb:         [SKIP][20] ([fdo#109276]) -> [PASS][21] +16 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb5/igt@gem_ctx_switch@legacy-bsd2-heavy.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb4/igt@gem_ctx_switch@legacy-bsd2-heavy.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][22] ([fdo#110854]) -> [PASS][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb6/igt@gem_exec_balancer@smoke.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb2/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@preempt-queue-chain-bsd:
    - shard-iclb:         [SKIP][24] ([fdo#111325]) -> [PASS][25] +1 similar issue
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb4/igt@gem_exec_schedule@preempt-queue-chain-bsd.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb7/igt@gem_exec_schedule@preempt-queue-chain-bsd.html

  * igt@gem_mocs_settings@mocs-isolation-bsd2:
    - shard-iclb:         [FAIL][26] ([fdo#111330]) -> [PASS][27]
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb2/igt@gem_mocs_settings@mocs-isolation-bsd2.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb4/igt@gem_mocs_settings@mocs-isolation-bsd2.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-apl:          [DMESG-WARN][28] ([fdo#108566]) -> [PASS][29] +4 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-apl1/igt@i915_suspend@fence-restore-tiled2untiled.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-apl3/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-hsw:          [FAIL][30] ([fdo#105767]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-hsw4/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-glk:          [FAIL][32] ([fdo#105363]) -> [PASS][33]
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-glk4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-glk9/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt:
    - shard-iclb:         [FAIL][34] ([fdo#103167]) -> [PASS][35] +3 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [FAIL][36] ([fdo#103166]) -> [PASS][37]
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr@psr2_primary_page_flip:
    - shard-iclb:         [SKIP][38] ([fdo#109441]) -> [PASS][39]
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][40] ([fdo#99912]) -> [PASS][41]
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-apl4/igt@kms_setmode@basic.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-apl7/igt@kms_setmode@basic.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - shard-iclb:         [FAIL][42] ([fdo#111329]) -> [SKIP][43] ([fdo#109276])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb2/igt@gem_ctx_isolation@vcs1-nonpriv.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb8/igt@gem_ctx_isolation@vcs1-nonpriv.html

  * igt@gem_mocs_settings@mocs-reset-bsd2:
    - shard-iclb:         [FAIL][44] ([fdo#111330]) -> [SKIP][45] ([fdo#109276])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6818/shard-iclb2/igt@gem_mocs_settings@mocs-reset-bsd2.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/shard-iclb7/igt@gem_mocs_settings@mocs-reset-bsd2.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
  [fdo#111329]: https://bugs.freedesktop.org/show_bug.cgi?id=111329
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5162 -> IGTPW_3410
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_6818: c914252ce49ad246ccf5b23b8627319fdf5ff995 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3410: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/
  IGT_5162: e62ea305fdba2a9cd0dadfa527b54529cb0d1438 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3410/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [PATCH i-g-t 1/6] lib: Fix gem_measure_ring_inflight
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
@ 2019-09-03 12:53   ` Andi Shyti
  -1 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-03 12:53 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx

Hi Chris,

On Mon, Sep 02, 2019 at 05:15:43AM +0100, Chris Wilson wrote:
> 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>

Acked-by: Andi Shyti <andi.shyti@intel.com>

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

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

* Re: [igt-dev] [PATCH i-g-t 1/6] lib: Fix gem_measure_ring_inflight
@ 2019-09-03 12:53   ` Andi Shyti
  0 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-03 12:53 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx, Tvrtko Ursulin

Hi Chris,

On Mon, Sep 02, 2019 at 05:15:43AM +0100, Chris Wilson wrote:
> 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>

Acked-by: Andi Shyti <andi.shyti@intel.com>

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

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

* [PATCH i-g-t] i915/gem_ctx_shared: Prebind both context images
  2019-09-02  4:15   ` [igt-dev] " Chris Wilson
  (?)
@ 2019-09-03 13:59   ` Chris Wilson
  -1 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-03 13:59 UTC (permalink / raw)
  To: intel-gfx

If we are using an aliasing-ppgtt, the context images are in the same
virtual address space as our target objects. We have to be careful that
cloning and using a new context does not evict our unreferenced target
object. To avoid that, we first bind both context images while creating
the hole in the address space to ensure that the hole is still available
later on.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_shared.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
index b073bdfc9..f78524822 100644
--- a/tests/i915/gem_ctx_shared.c
+++ b/tests/i915/gem_ctx_shared.c
@@ -191,6 +191,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 		.buffer_count = 1,
 		.flags = ring,
 	};
+	uint32_t clone;
 	uint32_t scratch, *s;
 	uint32_t batch, cs[16];
 	uint64_t offset;
@@ -199,13 +200,18 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 	gem_require_ring(i915, ring);
 	igt_require(gem_can_store_dword(i915, ring));
 
+	clone = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
+
 	/* Find a hole big enough for both objects later */
 	scratch = gem_create(i915, 16384);
 	gem_write(i915, scratch, 0, &bbe, sizeof(bbe));
 	obj.handle = scratch;
 	gem_execbuf(i915, &execbuf);
-	gem_close(i915, scratch);
 	obj.flags |= EXEC_OBJECT_PINNED; /* reuse this address */
+	execbuf.rsvd1 = clone; /* and bind the second context image */
+	gem_execbuf(i915, &execbuf);
+	execbuf.rsvd1 = 0;
+	gem_close(i915, scratch);
 
 	scratch = gem_create(i915, 4096);
 	s = gem_mmap__wc(i915, scratch, 0, 4096, PROT_WRITE);
@@ -241,7 +247,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 
 	obj.handle = batch;
 	obj.offset += 8192; /* make sure we don't cause an eviction! */
-	execbuf.rsvd1 = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
+	execbuf.rsvd1 = clone;
 	if (gen > 3 && gen < 6)
 		execbuf.flags |= I915_EXEC_SECURE;
 	gem_execbuf(i915, &execbuf);
@@ -253,7 +259,6 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 	execbuf.batch_start_offset = 64 * sizeof(s[0]);
 	gem_execbuf(i915, &execbuf);
 	igt_assert_eq_u64(obj.offset, offset);
-	gem_context_destroy(i915, execbuf.rsvd1);
 
 	gem_sync(i915, batch); /* write hazard lies */
 	gem_close(i915, batch);
@@ -268,6 +273,8 @@ static void exec_shared_gtt(int i915, unsigned int ring)
 
 	munmap(s, 4096);
 	gem_close(i915, scratch);
+
+	gem_context_destroy(i915, clone);
 }
 
 static int nop_sync(int i915, uint32_t ctx, unsigned int ring, int64_t timeout)
-- 
2.23.0

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

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

* ✓ Fi.CI.BAT: success for i915/gem_ctx_shared: Prebind both context images
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
                   ` (8 preceding siblings ...)
  (?)
@ 2019-09-03 14:40 ` Patchwork
  -1 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-09-03 14:40 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: i915/gem_ctx_shared: Prebind both context images
URL   : https://patchwork.freedesktop.org/series/66171/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6827 -> IGTPW_3413
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/66171/revisions/1/mbox/

Known issues
------------

  Here are the changes found in IGTPW_3413 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_close_race@basic-process:
    - fi-icl-u3:          [PASS][1] -> [DMESG-WARN][2] ([fdo#107724])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/fi-icl-u3/igt@gem_close_race@basic-process.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/fi-icl-u3/igt@gem_close_race@basic-process.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-blb-e6850:       [PASS][3] -> [INCOMPLETE][4] ([fdo#107718])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html

  
#### Possible fixes ####

  * igt@gem_ctx_create@basic-files:
    - {fi-icl-guc}:       [INCOMPLETE][5] ([fdo#107713] / [fdo#109100]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/fi-icl-guc/igt@gem_ctx_create@basic-files.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/fi-icl-guc/igt@gem_ctx_create@basic-files.html

  * igt@gem_ctx_switch@legacy-render:
    - fi-bxt-dsi:         [INCOMPLETE][7] ([fdo#103927] / [fdo#111381]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/fi-bxt-dsi/igt@gem_ctx_switch@legacy-render.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/fi-bxt-dsi/igt@gem_ctx_switch@legacy-render.html

  * igt@i915_selftest@live_execlists:
    - fi-skl-gvtdvm:      [DMESG-FAIL][9] ([fdo#111108]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][11] ([fdo#102614]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#111108]: https://bugs.freedesktop.org/show_bug.cgi?id=111108
  [fdo#111381]: https://bugs.freedesktop.org/show_bug.cgi?id=111381


Participating hosts (53 -> 46)
------------------------------

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5164 -> IGTPW_3413

  CI-20190529: 20190529
  CI_DRM_6827: 0e106feacb0b1a642b86609a4cdfa7e37bf3065d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3413: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/
  IGT_5164: 90babd3f12707dfabaa58bb18f6b8e22636b6895 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [igt-dev] [PATCH i-g-t 2/6] i915/gem_ctx_shared: Prebind both context images
  2019-09-02  4:15   ` [igt-dev] " Chris Wilson
@ 2019-09-03 15:25     ` Andi Shyti
  -1 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-03 15:25 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx

Hi Chris,

On Mon, Sep 02, 2019 at 05:15:44AM +0100, Chris Wilson wrote:
> If we are using an aliasing-ppgtt, the context images are in the same
> virtual address space as our target objects. We have to be careful that
> cloning and using a new context does not evict our unreferenced target
> object. To avoid that, we first bind both context images while creating
> the hole in the address space to ensure that the hole is still available
> later on.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  tests/i915/gem_ctx_shared.c | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
> index b073bdfc9..c9e7b8a1a 100644
> --- a/tests/i915/gem_ctx_shared.c
> +++ b/tests/i915/gem_ctx_shared.c
> @@ -191,6 +191,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
>  		.buffer_count = 1,
>  		.flags = ring,
>  	};
> +	uint32_t clone;
>  	uint32_t scratch, *s;
>  	uint32_t batch, cs[16];
>  	uint64_t offset;
> @@ -199,13 +200,18 @@ static void exec_shared_gtt(int i915, unsigned int ring)
>  	gem_require_ring(i915, ring);
>  	igt_require(gem_can_store_dword(i915, ring));
>  
> +	clone = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
> +
>  	/* Find a hole big enough for both objects later */
> -	scratch = gem_create(i915, 16384);
> +	scratch = gem_create(i915, 64<<10);

I guess this is a leftover, right?

Reviewed-by: Andi Shyti <andi.shyti@intel.com>

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

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

* Re: [igt-dev] [PATCH i-g-t 2/6] i915/gem_ctx_shared: Prebind both context images
@ 2019-09-03 15:25     ` Andi Shyti
  0 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-03 15:25 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx

Hi Chris,

On Mon, Sep 02, 2019 at 05:15:44AM +0100, Chris Wilson wrote:
> If we are using an aliasing-ppgtt, the context images are in the same
> virtual address space as our target objects. We have to be careful that
> cloning and using a new context does not evict our unreferenced target
> object. To avoid that, we first bind both context images while creating
> the hole in the address space to ensure that the hole is still available
> later on.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  tests/i915/gem_ctx_shared.c | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
> index b073bdfc9..c9e7b8a1a 100644
> --- a/tests/i915/gem_ctx_shared.c
> +++ b/tests/i915/gem_ctx_shared.c
> @@ -191,6 +191,7 @@ static void exec_shared_gtt(int i915, unsigned int ring)
>  		.buffer_count = 1,
>  		.flags = ring,
>  	};
> +	uint32_t clone;
>  	uint32_t scratch, *s;
>  	uint32_t batch, cs[16];
>  	uint64_t offset;
> @@ -199,13 +200,18 @@ static void exec_shared_gtt(int i915, unsigned int ring)
>  	gem_require_ring(i915, ring);
>  	igt_require(gem_can_store_dword(i915, ring));
>  
> +	clone = gem_context_clone(i915, 0, I915_CONTEXT_CLONE_VM, 0);
> +
>  	/* Find a hole big enough for both objects later */
> -	scratch = gem_create(i915, 16384);
> +	scratch = gem_create(i915, 64<<10);

I guess this is a leftover, right?

Reviewed-by: Andi Shyti <andi.shyti@intel.com>

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

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

* Re: [igt-dev] [PATCH i-g-t 3/6] i915/gem_tiled_swapped: Tweak mlocked size
  2019-09-02  4:15   ` [igt-dev] " Chris Wilson
@ 2019-09-03 15:32     ` Andi Shyti
  -1 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-03 15:32 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx

Hi Chris,

> -		num_threads = gem_available_fences(fd);
> +		num_threads = gem_available_fences(fd) + 1;

any reason for this?

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

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

* Re: [igt-dev] [PATCH i-g-t 3/6] i915/gem_tiled_swapped: Tweak mlocked size
@ 2019-09-03 15:32     ` Andi Shyti
  0 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-03 15:32 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx

Hi Chris,

> -		num_threads = gem_available_fences(fd);
> +		num_threads = gem_available_fences(fd) + 1;

any reason for this?

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

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

* Re: [igt-dev] [PATCH i-g-t 4/6] Add i915/gem_ctx_persistence
  2019-09-02  4:15   ` [igt-dev] " Chris Wilson
@ 2019-09-03 17:50     ` Andi Shyti
  -1 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-03 17:50 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx

Hi Chris,

just a few quick question from a first look,

> +/**
> + * __gem_context_set_persistence:
> + * @i915: open i915 drm file descriptor
> + * @ctx: i915 context id
> + * @state: desired persistence
> + *
> + * Like __gem_context_set_persistence(), except we assert on failure.
> + */
> +void gem_context_set_persistence(int i915, uint32_t ctx, bool state)
> +{
> +	igt_assert_eq(__gem_context_set_persistence(i915, ctx, state), 0);
> +}

Is this really required? We know what comes out of this, it's the
same as calling igt_assert_eq(1, 2); right?

> @@ -58,6 +63,10 @@ int __gem_context_get_param(int fd, struct drm_i915_gem_context_param *p);
>  int __gem_context_set_priority(int fd, uint32_t ctx, int prio);
>  void gem_context_set_priority(int fd, uint32_t ctx, int prio);
>  
> +#define I915_CONTEXT_PARAM_PERSISTENCE 0xb

what if we want to add more parameters in the driver? We would
need to remember to update this as well.

> +	gem_context_get_param(i915, &p);
> +	expected = !!p.value;
> +
> +	expected = !expected;

"expected = !p.value" ?

> +	p.value = expected;
> +	gem_context_set_param(i915, &p);
> +	gem_context_get_param(i915, &p);
> +	igt_assert_eq(p.value, expected);

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

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

* Re: [igt-dev] [PATCH i-g-t 4/6] Add i915/gem_ctx_persistence
@ 2019-09-03 17:50     ` Andi Shyti
  0 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-03 17:50 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx, Jon Bloomfield

Hi Chris,

just a few quick question from a first look,

> +/**
> + * __gem_context_set_persistence:
> + * @i915: open i915 drm file descriptor
> + * @ctx: i915 context id
> + * @state: desired persistence
> + *
> + * Like __gem_context_set_persistence(), except we assert on failure.
> + */
> +void gem_context_set_persistence(int i915, uint32_t ctx, bool state)
> +{
> +	igt_assert_eq(__gem_context_set_persistence(i915, ctx, state), 0);
> +}

Is this really required? We know what comes out of this, it's the
same as calling igt_assert_eq(1, 2); right?

> @@ -58,6 +63,10 @@ int __gem_context_get_param(int fd, struct drm_i915_gem_context_param *p);
>  int __gem_context_set_priority(int fd, uint32_t ctx, int prio);
>  void gem_context_set_priority(int fd, uint32_t ctx, int prio);
>  
> +#define I915_CONTEXT_PARAM_PERSISTENCE 0xb

what if we want to add more parameters in the driver? We would
need to remember to update this as well.

> +	gem_context_get_param(i915, &p);
> +	expected = !!p.value;
> +
> +	expected = !expected;

"expected = !p.value" ?

> +	p.value = expected;
> +	gem_context_set_param(i915, &p);
> +	gem_context_get_param(i915, &p);
> +	igt_assert_eq(p.value, expected);

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

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

* ✓ Fi.CI.IGT: success for i915/gem_ctx_shared: Prebind both context images
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
                   ` (9 preceding siblings ...)
  (?)
@ 2019-09-03 18:29 ` Patchwork
  -1 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-09-03 18:29 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: i915/gem_ctx_shared: Prebind both context images
URL   : https://patchwork.freedesktop.org/series/66171/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6827_full -> IGTPW_3413_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/66171/revisions/1/mbox/

Known issues
------------

  Here are the changes found in IGTPW_3413_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_shared@exec-single-timeline-bsd:
    - shard-iclb:         [PASS][1] -> [SKIP][2] ([fdo#110841])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb5/igt@gem_ctx_shared@exec-single-timeline-bsd.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb1/igt@gem_ctx_shared@exec-single-timeline-bsd.html

  * igt@gem_ctx_switch@legacy-bsd2-heavy:
    - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#109276]) +13 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb4/igt@gem_ctx_switch@legacy-bsd2-heavy.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb6/igt@gem_ctx_switch@legacy-bsd2-heavy.html

  * igt@gem_exec_schedule@fifo-bsd:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#111325]) +4 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb8/igt@gem_exec_schedule@fifo-bsd.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb4/igt@gem_exec_schedule@fifo-bsd.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-glk:          [PASS][7] -> [DMESG-WARN][8] ([fdo#108686])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-glk8/igt@gem_tiled_swapping@non-threaded.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-glk9/igt@gem_tiled_swapping@non-threaded.html
    - shard-apl:          [PASS][9] -> [DMESG-WARN][10] ([fdo#108686])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl5/igt@gem_tiled_swapping@non-threaded.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl2/igt@gem_tiled_swapping@non-threaded.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress:
    - shard-hsw:          [PASS][11] -> [FAIL][12] ([fdo#111548])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw1/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw2/igt@i915_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_color@pipe-b-degamma:
    - shard-kbl:          [PASS][13] -> [FAIL][14] ([fdo#104782])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-kbl3/igt@kms_color@pipe-b-degamma.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-kbl7/igt@kms_color@pipe-b-degamma.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding:
    - shard-apl:          [PASS][15] -> [FAIL][16] ([fdo#103232])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl8/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl1/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
    - shard-hsw:          [PASS][17] -> [FAIL][18] ([fdo#103355])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw4/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw1/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([fdo#103167]) +5 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-apl:          [PASS][21] -> [DMESG-WARN][22] ([fdo#108566]) +3 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl5/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl5/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [PASS][23] -> [SKIP][24] ([fdo#109642] / [fdo#111068])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb1/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_primary_blt:
    - shard-iclb:         [PASS][25] -> [SKIP][26] ([fdo#109441]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb2/igt@kms_psr@psr2_primary_blt.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb7/igt@kms_psr@psr2_primary_blt.html

  * igt@kms_vblank@pipe-c-ts-continuation-suspend:
    - shard-hsw:          [PASS][27] -> [FAIL][28] ([fdo#103375]) +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw5/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw2/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
    - shard-iclb:         [PASS][29] -> [FAIL][30] ([fdo#103375])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb5/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb4/igt@kms_vblank@pipe-c-ts-continuation-suspend.html

  * igt@perf_pmu@busy-start-bcs0:
    - shard-apl:          [PASS][31] -> [FAIL][32] ([fdo#111545]) +2 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl1/igt@perf_pmu@busy-start-bcs0.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl8/igt@perf_pmu@busy-start-bcs0.html

  * igt@tools_test@tools_test:
    - shard-hsw:          [PASS][33] -> [SKIP][34] ([fdo#109271])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw2/igt@tools_test@tools_test.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw7/igt@tools_test@tools_test.html

  
#### Possible fixes ####

  * igt@gem_eio@in-flight-suspend:
    - shard-apl:          [DMESG-WARN][35] ([fdo#108566]) -> [PASS][36] +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl1/igt@gem_eio@in-flight-suspend.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl2/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_schedule@pi-ringfull-vebox:
    - shard-apl:          [FAIL][37] ([fdo#111547]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl3/igt@gem_exec_schedule@pi-ringfull-vebox.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl1/igt@gem_exec_schedule@pi-ringfull-vebox.html

  * igt@gem_exec_schedule@preempt-bsd1:
    - shard-iclb:         [SKIP][39] ([fdo#109276]) -> [PASS][40] +9 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb7/igt@gem_exec_schedule@preempt-bsd1.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb4/igt@gem_exec_schedule@preempt-bsd1.html

  * igt@gem_exec_schedule@preempt-other-bsd:
    - shard-iclb:         [SKIP][41] ([fdo#111325]) -> [PASS][42] +2 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb1/igt@gem_exec_schedule@preempt-other-bsd.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb6/igt@gem_exec_schedule@preempt-other-bsd.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
    - shard-apl:          [INCOMPLETE][43] ([fdo#103927]) -> [PASS][44] +3 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl7/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl4/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html

  * igt@i915_pm_rpm@gem-evict-pwrite:
    - shard-hsw:          [FAIL][45] ([fdo#111548]) -> [PASS][46] +2 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw2/igt@i915_pm_rpm@gem-evict-pwrite.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw7/igt@i915_pm_rpm@gem-evict-pwrite.html

  * igt@i915_suspend@forcewake:
    - shard-apl:          [FAIL][47] ([fdo#103375]) -> [PASS][48] +1 similar issue
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl3/igt@i915_suspend@forcewake.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl8/igt@i915_suspend@forcewake.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-hsw:          [FAIL][49] ([fdo#103375]) -> [PASS][50] +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
    - shard-glk:          [FAIL][51] ([fdo#104873]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-glk8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@all-pipes-torture-move:
    - shard-hsw:          [DMESG-WARN][53] ([fdo#107122]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw2/igt@kms_cursor_legacy@all-pipes-torture-move.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw7/igt@kms_cursor_legacy@all-pipes-torture-move.html

  * igt@kms_cursor_legacy@cursor-vs-flip-legacy:
    - shard-hsw:          [FAIL][55] ([fdo#103355]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw4/igt@kms_cursor_legacy@cursor-vs-flip-legacy.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-legacy.html

  * igt@kms_flip_tiling@flip-to-x-tiled:
    - shard-iclb:         [FAIL][57] ([fdo#108134]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb4/igt@kms_flip_tiling@flip-to-x-tiled.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb3/igt@kms_flip_tiling@flip-to-x-tiled.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-wc:
    - shard-snb:          [SKIP][59] ([fdo#109271]) -> [PASS][60] +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-snb5/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-wc.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-snb4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-apl:          [FAIL][61] ([fdo#103167]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html
    - shard-kbl:          [FAIL][63] ([fdo#103167]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render:
    - shard-iclb:         [FAIL][65] ([fdo#103167]) -> [PASS][66] +2 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-snb:          [FAIL][67] ([fdo#103375]) -> [PASS][68] +2 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-snb6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-snb6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [SKIP][69] ([fdo#109441]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb3/igt@kms_psr@psr2_cursor_plane_onoff.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_setmode@basic:
    - shard-hsw:          [FAIL][71] ([fdo#99912]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-hsw5/igt@kms_setmode@basic.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-hsw7/igt@kms_setmode@basic.html
    - shard-kbl:          [FAIL][73] ([fdo#99912]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-kbl3/igt@kms_setmode@basic.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-kbl7/igt@kms_setmode@basic.html

  * igt@perf_pmu@rc6-runtime-pm-long:
    - shard-apl:          [FAIL][75] ([fdo#111545]) -> [PASS][76] +8 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl3/igt@perf_pmu@rc6-runtime-pm-long.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl1/igt@perf_pmu@rc6-runtime-pm-long.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@bcs0-s3:
    - shard-apl:          [FAIL][77] ([fdo#103375]) -> [DMESG-WARN][78] ([fdo#108566])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-apl3/igt@gem_ctx_isolation@bcs0-s3.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-apl2/igt@gem_ctx_isolation@bcs0-s3.html

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - shard-iclb:         [FAIL][79] ([fdo#111329]) -> [SKIP][80] ([fdo#109276])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb2/igt@gem_ctx_isolation@vcs1-nonpriv.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb8/igt@gem_ctx_isolation@vcs1-nonpriv.html

  * igt@gem_mocs_settings@mocs-reset-bsd2:
    - shard-iclb:         [SKIP][81] ([fdo#109276]) -> [FAIL][82] ([fdo#111330]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6827/shard-iclb6/igt@gem_mocs_settings@mocs-reset-bsd2.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/shard-iclb4/igt@gem_mocs_settings@mocs-reset-bsd2.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103355]: https://bugs.freedesktop.org/show_bug.cgi?id=103355
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104873]: https://bugs.freedesktop.org/show_bug.cgi?id=104873
  [fdo#107122]: https://bugs.freedesktop.org/show_bug.cgi?id=107122
  [fdo#108134]: https://bugs.freedesktop.org/show_bug.cgi?id=108134
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
  [fdo#111329]: https://bugs.freedesktop.org/show_bug.cgi?id=111329
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
  [fdo#111545]: https://bugs.freedesktop.org/show_bug.cgi?id=111545
  [fdo#111547]: https://bugs.freedesktop.org/show_bug.cgi?id=111547
  [fdo#111548]: https://bugs.freedesktop.org/show_bug.cgi?id=111548
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5164 -> IGTPW_3413
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_6827: 0e106feacb0b1a642b86609a4cdfa7e37bf3065d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3413: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/
  IGT_5164: 90babd3f12707dfabaa58bb18f6b8e22636b6895 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3413/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH i-g-t] i915/gem_tiled_swapping: Tweak mlocked size
  2019-09-02  4:15   ` [igt-dev] " Chris Wilson
@ 2019-09-03 19:31     ` Chris Wilson
  -1 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-03 19:31 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

On my systems with lots of memdebug enabled, we would hit the oomkiller
90% of the time during the initial mlock prior to allocating any objects
(and about 20% of the time lockup / panic). Tweak the target allocation
sizes, and include a few more breadcrumbs tracing the allocations so
that we can reliably start the tests. We still do hit our shrinker and
even the oom notifier, so still achieving its goal of exercising low
memory and swap pressure.

To slightly compensate for the reduced mempressure (albeit we do not
remove the swapping, the raison d'etre of the test), we increase the
number of threads to force the system to reuse active fences, making it
more stressful on the fence code.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Andi Shyti <andi.shyti@intel.com>
---
 tests/i915/gem_tiled_swapping.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/tests/i915/gem_tiled_swapping.c b/tests/i915/gem_tiled_swapping.c
index ddf2a748f..1b70c1e51 100644
--- a/tests/i915/gem_tiled_swapping.c
+++ b/tests/i915/gem_tiled_swapping.c
@@ -165,8 +165,9 @@ static void check_memory_layout(int fd)
 
 igt_main
 {
+	unsigned long n, count;
 	struct thread *threads;
-	int fd, n, count, num_threads;
+	int fd, num_threads;
 
 	igt_fixture {
 		size_t lock_size;
@@ -179,23 +180,30 @@ igt_main
 		check_memory_layout(fd);
 
 		/* lock RAM, leaving only 512MB available */
-		lock_size = max(0, intel_get_total_ram_mb() - AVAIL_RAM);
+		count = intel_get_total_ram_mb() - intel_get_avail_ram_mb();
+		count = max(count + 64, AVAIL_RAM);
+		lock_size = max(0, intel_get_total_ram_mb() - count);
+		igt_info("Mlocking %zdMiB of %ld/%ldMiB\n",
+			 lock_size,
+			 (long)intel_get_avail_ram_mb(),
+			 (long)intel_get_total_ram_mb());
 		igt_lock_mem(lock_size);
 
 		/* need slightly more than available memory */
-		count = min(intel_get_total_ram_mb(), AVAIL_RAM) * 1.25;
+		count = intel_get_avail_ram_mb() + 128;
+		igt_info("Using %lu 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
+			 count,
+			 (long)intel_get_avail_ram_mb(),
+			 (long)intel_get_total_ram_mb(),
+			 (long)intel_get_total_swap_mb());
 		bo_handles = calloc(count, sizeof(uint32_t));
 		igt_assert(bo_handles);
 
-		num_threads = gem_available_fences(fd);
+		num_threads = gem_available_fences(fd) + 1;
+		igt_info("Using up to %d fences/threads\n", num_threads);
 		threads = calloc(num_threads, sizeof(struct thread));
 		igt_assert(threads);
 
-		igt_info("Using %d 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
-			 count,
-			 (long)intel_get_avail_ram_mb(),
-			 (long)intel_get_total_ram_mb(),
-			 (long)intel_get_total_swap_mb());
 		intel_require_memory(count, 1024*1024, CHECK_RAM | CHECK_SWAP);
 
 		for (n = 0; n < count; n++) {
-- 
2.23.0

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

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

* [igt-dev] [PATCH i-g-t] i915/gem_tiled_swapping: Tweak mlocked size
@ 2019-09-03 19:31     ` Chris Wilson
  0 siblings, 0 replies; 31+ messages in thread
From: Chris Wilson @ 2019-09-03 19:31 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev

On my systems with lots of memdebug enabled, we would hit the oomkiller
90% of the time during the initial mlock prior to allocating any objects
(and about 20% of the time lockup / panic). Tweak the target allocation
sizes, and include a few more breadcrumbs tracing the allocations so
that we can reliably start the tests. We still do hit our shrinker and
even the oom notifier, so still achieving its goal of exercising low
memory and swap pressure.

To slightly compensate for the reduced mempressure (albeit we do not
remove the swapping, the raison d'etre of the test), we increase the
number of threads to force the system to reuse active fences, making it
more stressful on the fence code.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Andi Shyti <andi.shyti@intel.com>
---
 tests/i915/gem_tiled_swapping.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/tests/i915/gem_tiled_swapping.c b/tests/i915/gem_tiled_swapping.c
index ddf2a748f..1b70c1e51 100644
--- a/tests/i915/gem_tiled_swapping.c
+++ b/tests/i915/gem_tiled_swapping.c
@@ -165,8 +165,9 @@ static void check_memory_layout(int fd)
 
 igt_main
 {
+	unsigned long n, count;
 	struct thread *threads;
-	int fd, n, count, num_threads;
+	int fd, num_threads;
 
 	igt_fixture {
 		size_t lock_size;
@@ -179,23 +180,30 @@ igt_main
 		check_memory_layout(fd);
 
 		/* lock RAM, leaving only 512MB available */
-		lock_size = max(0, intel_get_total_ram_mb() - AVAIL_RAM);
+		count = intel_get_total_ram_mb() - intel_get_avail_ram_mb();
+		count = max(count + 64, AVAIL_RAM);
+		lock_size = max(0, intel_get_total_ram_mb() - count);
+		igt_info("Mlocking %zdMiB of %ld/%ldMiB\n",
+			 lock_size,
+			 (long)intel_get_avail_ram_mb(),
+			 (long)intel_get_total_ram_mb());
 		igt_lock_mem(lock_size);
 
 		/* need slightly more than available memory */
-		count = min(intel_get_total_ram_mb(), AVAIL_RAM) * 1.25;
+		count = intel_get_avail_ram_mb() + 128;
+		igt_info("Using %lu 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
+			 count,
+			 (long)intel_get_avail_ram_mb(),
+			 (long)intel_get_total_ram_mb(),
+			 (long)intel_get_total_swap_mb());
 		bo_handles = calloc(count, sizeof(uint32_t));
 		igt_assert(bo_handles);
 
-		num_threads = gem_available_fences(fd);
+		num_threads = gem_available_fences(fd) + 1;
+		igt_info("Using up to %d fences/threads\n", num_threads);
 		threads = calloc(num_threads, sizeof(struct thread));
 		igt_assert(threads);
 
-		igt_info("Using %d 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
-			 count,
-			 (long)intel_get_avail_ram_mb(),
-			 (long)intel_get_total_ram_mb(),
-			 (long)intel_get_total_swap_mb());
 		intel_require_memory(count, 1024*1024, CHECK_RAM | CHECK_SWAP);
 
 		for (n = 0; n < count; n++) {
-- 
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] 31+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight (rev2)
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
                   ` (10 preceding siblings ...)
  (?)
@ 2019-09-03 20:06 ` Patchwork
  -1 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-09-03 20:06 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight (rev2)
URL   : https://patchwork.freedesktop.org/series/66110/
State : success

== Summary ==

CI Bug Log - changes from IGT_5166 -> IGTPW_3414
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/66110/revisions/2/mbox/

Known issues
------------

  Here are the changes found in IGTPW_3414 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_switch@legacy-render:
    - fi-bxt-dsi:         [PASS][1] -> [INCOMPLETE][2] ([fdo#103927] / [fdo#111381])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/fi-bxt-dsi/igt@gem_ctx_switch@legacy-render.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/fi-bxt-dsi/igt@gem_ctx_switch@legacy-render.html

  * igt@i915_module_load@reload:
    - fi-icl-u3:          [PASS][3] -> [DMESG-WARN][4] ([fdo#107724] / [fdo#111214])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/fi-icl-u3/igt@i915_module_load@reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/fi-icl-u3/igt@i915_module_load@reload.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u2:          [PASS][5] -> [FAIL][6] ([fdo#103167])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_prop_blob@basic:
    - fi-icl-u3:          [PASS][7] -> [DMESG-WARN][8] ([fdo#107724])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/fi-icl-u3/igt@kms_prop_blob@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/fi-icl-u3/igt@kms_prop_blob@basic.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@basic-read:
    - fi-icl-u3:          [DMESG-WARN][9] ([fdo#107724]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/fi-icl-u3/igt@gem_mmap_gtt@basic-read.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/fi-icl-u3/igt@gem_mmap_gtt@basic-read.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u3:          [FAIL][11] ([fdo#103167]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
    - {fi-icl-u4}:        [FAIL][13] ([fdo#103167]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/fi-icl-u4/igt@kms_frontbuffer_tracking@basic.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/fi-icl-u4/igt@kms_frontbuffer_tracking@basic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214
  [fdo#111381]: https://bugs.freedesktop.org/show_bug.cgi?id=111381


Participating hosts (53 -> 42)
------------------------------

  Missing    (11): fi-kbl-soraka fi-ilk-m540 fi-cml-h fi-bsw-n3050 fi-byt-j1900 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5166 -> IGTPW_3414

  CI-20190529: 20190529
  CI_DRM_6828: 6e043dde15a1b2b97d908d0467e9197ffa8934c2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3414: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/
  IGT_5166: a9fc0e2d4298085e26ada535395b6155d68120c6 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_persistence@cleanup
+igt@gem_ctx_persistence@file
+igt@gem_ctx_persistence@hostile
+igt@gem_ctx_persistence@idempotent
+igt@gem_ctx_persistence@mixed
+igt@gem_ctx_persistence@persistence
+igt@gem_ctx_persistence@process

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight (rev2)
  2019-09-02  4:15 ` [igt-dev] " Chris Wilson
                   ` (11 preceding siblings ...)
  (?)
@ 2019-09-03 23:10 ` Patchwork
  -1 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2019-09-03 23:10 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/6] lib: Fix gem_measure_ring_inflight (rev2)
URL   : https://patchwork.freedesktop.org/series/66110/
State : success

== Summary ==

CI Bug Log - changes from IGT_5166_full -> IGTPW_3414_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/66110/revisions/2/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_3414_full:

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_persistence@process} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][1] +6 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb3/igt@gem_ctx_persistence@process.html

  
New tests
---------

  New tests have been introduced between IGT_5166_full and IGTPW_3414_full:

### New IGT tests (7) ###

  * igt@gem_ctx_persistence@cleanup:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@file:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@hostile:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@idempotent:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@mixed:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@persistence:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_persistence@process:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_3414_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@hibernate:
    - shard-apl:          [PASS][2] -> [FAIL][3] ([fdo#111550])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl2/igt@gem_eio@hibernate.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl4/igt@gem_eio@hibernate.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [PASS][4] -> [SKIP][5] ([fdo#110854])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb1/igt@gem_exec_balancer@smoke.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb3/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_parallel@fds:
    - shard-hsw:          [PASS][6] -> [INCOMPLETE][7] ([fdo#103540]) +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw4/igt@gem_exec_parallel@fds.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw4/igt@gem_exec_parallel@fds.html

  * igt@gem_exec_schedule@preempt-other-bsd1:
    - shard-iclb:         [PASS][8] -> [SKIP][9] ([fdo#109276]) +22 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb4/igt@gem_exec_schedule@preempt-other-bsd1.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb5/igt@gem_exec_schedule@preempt-other-bsd1.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [PASS][10] -> [SKIP][11] ([fdo#111325]) +5 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb3/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb1/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_mocs_settings@mocs-rc6-render:
    - shard-apl:          [PASS][12] -> [SKIP][13] ([fdo#109271])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl3/igt@gem_mocs_settings@mocs-rc6-render.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl4/igt@gem_mocs_settings@mocs-rc6-render.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-apl:          [PASS][14] -> [INCOMPLETE][15] ([fdo#103927])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl8/igt@gem_workarounds@suspend-resume-context.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl1/igt@gem_workarounds@suspend-resume-context.html

  * igt@i915_pm_rpm@drm-resources-equal:
    - shard-hsw:          [PASS][16] -> [FAIL][17] ([fdo#111548]) +2 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw1/igt@i915_pm_rpm@drm-resources-equal.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw2/igt@i915_pm_rpm@drm-resources-equal.html

  * igt@i915_suspend@forcewake:
    - shard-apl:          [PASS][18] -> [DMESG-WARN][19] ([fdo#108566]) +1 similar issue
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl8/igt@i915_suspend@forcewake.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl7/igt@i915_suspend@forcewake.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x85-onscreen:
    - shard-kbl:          [PASS][20] -> [FAIL][21] ([fdo#103232]) +1 similar issue
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-256x85-onscreen.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-kbl4/igt@kms_cursor_crc@pipe-a-cursor-256x85-onscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-256x256-sliding:
    - shard-apl:          [PASS][22] -> [FAIL][23] ([fdo#103232]) +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl3/igt@kms_cursor_crc@pipe-b-cursor-256x256-sliding.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-256x256-sliding.html

  * igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic:
    - shard-snb:          [PASS][24] -> [SKIP][25] ([fdo#109271])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-snb6/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-snb6/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-snb:          [PASS][26] -> [FAIL][27] ([fdo#103375])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-snb4/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-snb1/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
    - shard-iclb:         [PASS][28] -> [FAIL][29] ([fdo#103167]) +8 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_psr@psr2_primary_blt:
    - shard-iclb:         [PASS][30] -> [SKIP][31] ([fdo#109441])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb2/igt@kms_psr@psr2_primary_blt.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb3/igt@kms_psr@psr2_primary_blt.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-hsw:          [PASS][32] -> [FAIL][33] ([fdo#103375]) +1 similar issue
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw2/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  * igt@perf_pmu@rc6:
    - shard-kbl:          [PASS][34] -> [SKIP][35] ([fdo#109271])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-kbl6/igt@perf_pmu@rc6.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-kbl7/igt@perf_pmu@rc6.html

  * igt@perf_pmu@semaphore-wait-bcs0:
    - shard-apl:          [PASS][36] -> [FAIL][37] ([fdo#111545]) +3 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl2/igt@perf_pmu@semaphore-wait-bcs0.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl4/igt@perf_pmu@semaphore-wait-bcs0.html

  
#### Possible fixes ####

  * igt@gem_ctx_shared@exec-single-timeline-bsd:
    - shard-iclb:         [SKIP][38] ([fdo#110841]) -> [PASS][39]
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb1/igt@gem_ctx_shared@exec-single-timeline-bsd.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb5/igt@gem_ctx_shared@exec-single-timeline-bsd.html

  * igt@gem_exec_schedule@fifo-bsd1:
    - shard-iclb:         [SKIP][40] ([fdo#109276]) -> [PASS][41] +11 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb6/igt@gem_exec_schedule@fifo-bsd1.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb4/igt@gem_exec_schedule@fifo-bsd1.html

  * igt@gem_exec_schedule@independent-bsd:
    - shard-iclb:         [SKIP][42] ([fdo#111325]) -> [PASS][43] +2 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb4/igt@gem_exec_schedule@independent-bsd.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb3/igt@gem_exec_schedule@independent-bsd.html

  * igt@gem_mocs_settings@mocs-isolation-bsd2:
    - shard-iclb:         [FAIL][44] ([fdo#111330]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb2/igt@gem_mocs_settings@mocs-isolation-bsd2.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb4/igt@gem_mocs_settings@mocs-isolation-bsd2.html

  * igt@gem_mocs_settings@mocs-rc6-ctx-dirty-render:
    - shard-apl:          [SKIP][46] ([fdo#109271]) -> [PASS][47]
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl5/igt@gem_mocs_settings@mocs-rc6-ctx-dirty-render.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl7/igt@gem_mocs_settings@mocs-rc6-ctx-dirty-render.html

  * igt@gem_workarounds@suspend-resume:
    - shard-apl:          [DMESG-WARN][48] ([fdo#108566]) -> [PASS][49] +4 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl3/igt@gem_workarounds@suspend-resume.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl7/igt@gem_workarounds@suspend-resume.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-apl:          [DMESG-WARN][50] -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl5/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl4/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_pm_rpm@gem-mmap-cpu:
    - shard-hsw:          [FAIL][52] ([fdo#111548]) -> [PASS][53] +2 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw2/igt@i915_pm_rpm@gem-mmap-cpu.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw5/igt@i915_pm_rpm@gem-mmap-cpu.html

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-iclb:         [INCOMPLETE][54] ([fdo#107713] / [fdo#108840]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb2/igt@i915_pm_rpm@system-suspend-execbuf.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb2/igt@i915_pm_rpm@system-suspend-execbuf.html

  * igt@i915_selftest@mock_fence:
    - shard-iclb:         [INCOMPLETE][56] ([fdo#107713]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb7/igt@i915_selftest@mock_fence.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb1/igt@i915_selftest@mock_fence.html

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          [FAIL][58] ([fdo#103375]) -> [PASS][59] +3 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl5/igt@i915_suspend@debugfs-reader.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl2/igt@i915_suspend@debugfs-reader.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-hsw:          [FAIL][60] ([fdo#103375]) -> [PASS][61]
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_flip@dpms-vs-vblank-race:
    - shard-apl:          [FAIL][62] ([fdo#103060]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl1/igt@kms_flip@dpms-vs-vblank-race.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl8/igt@kms_flip@dpms-vs-vblank-race.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-hsw:          [INCOMPLETE][64] ([fdo#103540]) -> [PASS][65]
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw4/igt@kms_flip@flip-vs-suspend.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw7/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-snb:          [INCOMPLETE][66] ([fdo#105411]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-snb1/igt@kms_flip@flip-vs-suspend-interruptible.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-snb5/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-stridechange:
    - shard-iclb:         [FAIL][68] ([fdo#103167]) -> [PASS][69] +3 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-stridechange.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-stridechange.html

  * igt@kms_psr@no_drrs:
    - shard-iclb:         [FAIL][70] ([fdo#108341]) -> [PASS][71]
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb1/igt@kms_psr@no_drrs.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb7/igt@kms_psr@no_drrs.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         [SKIP][72] ([fdo#109441]) -> [PASS][73] +2 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb6/igt@kms_psr@psr2_no_drrs.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb2/igt@kms_psr@psr2_no_drrs.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-snb:          [FAIL][74] ([fdo#103375]) -> [PASS][75] +3 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-snb5/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-snb6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  * igt@perf_pmu@rc6-runtime-pm-long:
    - shard-iclb:         [FAIL][76] ([fdo#105010]) -> [PASS][77]
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb1/igt@perf_pmu@rc6-runtime-pm-long.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb2/igt@perf_pmu@rc6-runtime-pm-long.html

  * igt@perf_pmu@render-node-busy-vcs0:
    - shard-apl:          [FAIL][78] ([fdo#111545]) -> [PASS][79] +12 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl5/igt@perf_pmu@render-node-busy-vcs0.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl1/igt@perf_pmu@render-node-busy-vcs0.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - shard-iclb:         [FAIL][80] ([fdo#111329]) -> [SKIP][81] ([fdo#109276])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb2/igt@gem_ctx_isolation@vcs1-nonpriv.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb5/igt@gem_ctx_isolation@vcs1-nonpriv.html

  * igt@gem_mocs_settings@mocs-reset-bsd2:
    - shard-iclb:         [FAIL][82] ([fdo#111330]) -> [SKIP][83] ([fdo#109276])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-iclb2/igt@gem_mocs_settings@mocs-reset-bsd2.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-iclb7/igt@gem_mocs_settings@mocs-reset-bsd2.html

  * igt@i915_pm_rpm@dpms-lpsp:
    - shard-hsw:          [SKIP][84] ([fdo#109271]) -> [FAIL][85] ([fdo#111548]) +2 similar issues
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw6/igt@i915_pm_rpm@dpms-lpsp.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw2/igt@i915_pm_rpm@dpms-lpsp.html

  * igt@i915_pm_rpm@modeset-lpsp-stress:
    - shard-hsw:          [FAIL][86] ([fdo#111548]) -> [SKIP][87] ([fdo#109271])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw2/igt@i915_pm_rpm@modeset-lpsp-stress.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw6/igt@i915_pm_rpm@modeset-lpsp-stress.html

  * igt@i915_suspend@sysfs-reader:
    - shard-apl:          [FAIL][88] ([fdo#103375]) -> [DMESG-WARN][89] ([fdo#108566]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-apl5/igt@i915_suspend@sysfs-reader.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-apl3/igt@i915_suspend@sysfs-reader.html

  * igt@perf_pmu@cpu-hotplug:
    - shard-hsw:          [TIMEOUT][90] ([fdo#111546]) -> [INCOMPLETE][91] ([fdo#103540])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5166/shard-hsw2/igt@perf_pmu@cpu-hotplug.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/shard-hsw1/igt@perf_pmu@cpu-hotplug.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108341]: https://bugs.freedesktop.org/show_bug.cgi?id=108341
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
  [fdo#111329]: https://bugs.freedesktop.org/show_bug.cgi?id=111329
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
  [fdo#111545]: https://bugs.freedesktop.org/show_bug.cgi?id=111545
  [fdo#111546]: https://bugs.freedesktop.org/show_bug.cgi?id=111546
  [fdo#111548]: https://bugs.freedesktop.org/show_bug.cgi?id=111548
  [fdo#111550]: https://bugs.freedesktop.org/show_bug.cgi?id=111550


Participating hosts (7 -> 6)
------------------------------

  Missing    (1): shard-skl 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5166 -> IGTPW_3414

  CI-20190529: 20190529
  CI_DRM_6828: 6e043dde15a1b2b97d908d0467e9197ffa8934c2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3414: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/
  IGT_5166: a9fc0e2d4298085e26ada535395b6155d68120c6 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3414/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [PATCH i-g-t] i915/gem_tiled_swapping: Tweak mlocked size
  2019-09-03 19:31     ` [igt-dev] " Chris Wilson
@ 2019-09-04  6:47       ` Andi Shyti
  -1 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-04  6:47 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx

Hi Chris,

On Tue, Sep 03, 2019 at 08:31:51PM +0100, Chris Wilson wrote:
> On my systems with lots of memdebug enabled, we would hit the oomkiller
> 90% of the time during the initial mlock prior to allocating any objects
> (and about 20% of the time lockup / panic). Tweak the target allocation
> sizes, and include a few more breadcrumbs tracing the allocations so
> that we can reliably start the tests. We still do hit our shrinker and
> even the oom notifier, so still achieving its goal of exercising low
> memory and swap pressure.
> 
> To slightly compensate for the reduced mempressure (albeit we do not
> remove the swapping, the raison d'etre of the test), we increase the
> number of threads to force the system to reuse active fences, making it
> more stressful on the fence code.

Ah... OK :)

> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Andi Shyti <andi.shyti@intel.com>

Reviewed-by: Andi Shyti <andi.shyti@intel.com>

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

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

* Re: [igt-dev] [PATCH i-g-t] i915/gem_tiled_swapping: Tweak mlocked size
@ 2019-09-04  6:47       ` Andi Shyti
  0 siblings, 0 replies; 31+ messages in thread
From: Andi Shyti @ 2019-09-04  6:47 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev, intel-gfx

Hi Chris,

On Tue, Sep 03, 2019 at 08:31:51PM +0100, Chris Wilson wrote:
> On my systems with lots of memdebug enabled, we would hit the oomkiller
> 90% of the time during the initial mlock prior to allocating any objects
> (and about 20% of the time lockup / panic). Tweak the target allocation
> sizes, and include a few more breadcrumbs tracing the allocations so
> that we can reliably start the tests. We still do hit our shrinker and
> even the oom notifier, so still achieving its goal of exercising low
> memory and swap pressure.
> 
> To slightly compensate for the reduced mempressure (albeit we do not
> remove the swapping, the raison d'etre of the test), we increase the
> number of threads to force the system to reuse active fences, making it
> more stressful on the fence code.

Ah... OK :)

> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Andi Shyti <andi.shyti@intel.com>

Reviewed-by: Andi Shyti <andi.shyti@intel.com>

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

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

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

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-02  4:15 [PATCH i-g-t 1/6] lib: Fix gem_measure_ring_inflight Chris Wilson
2019-09-02  4:15 ` [igt-dev] " Chris Wilson
2019-09-02  4:15 ` [PATCH i-g-t 2/6] i915/gem_ctx_shared: Prebind both context images Chris Wilson
2019-09-02  4:15   ` [igt-dev] " Chris Wilson
2019-09-03 13:59   ` [PATCH i-g-t] " Chris Wilson
2019-09-03 15:25   ` [igt-dev] [PATCH i-g-t 2/6] " Andi Shyti
2019-09-03 15:25     ` Andi Shyti
2019-09-02  4:15 ` [PATCH i-g-t 3/6] i915/gem_tiled_swapped: Tweak mlocked size Chris Wilson
2019-09-02  4:15   ` [igt-dev] " Chris Wilson
2019-09-03 15:32   ` Andi Shyti
2019-09-03 15:32     ` Andi Shyti
2019-09-03 19:31   ` [PATCH i-g-t] i915/gem_tiled_swapping: " Chris Wilson
2019-09-03 19:31     ` [igt-dev] " Chris Wilson
2019-09-04  6:47     ` Andi Shyti
2019-09-04  6:47       ` [igt-dev] " Andi Shyti
2019-09-02  4:15 ` [PATCH i-g-t 4/6] Add i915/gem_ctx_persistence Chris Wilson
2019-09-02  4:15   ` [igt-dev] " Chris Wilson
2019-09-03 17:50   ` Andi Shyti
2019-09-03 17:50     ` Andi Shyti
2019-09-02  4:15 ` [PATCH i-g-t 5/6] i915/gem_mocs_settings: Fudge gen11:vcs2 mocs register base Chris Wilson
2019-09-02  4:15   ` [Intel-gfx] " Chris Wilson
2019-09-02  4:15 ` [PATCH i-g-t 6/6] i915/gem_exec_balancer: Beware the migratory fence Chris Wilson
2019-09-02  4:15   ` [igt-dev] " 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 ` [PATCH i-g-t 1/6] " Andi Shyti
2019-09-03 12:53   ` [igt-dev] " Andi Shyti
2019-09-03 14:40 ` ✓ Fi.CI.BAT: success for i915/gem_ctx_shared: Prebind both context images Patchwork
2019-09-03 18:29 ` ✓ Fi.CI.IGT: " Patchwork
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.