All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
@ 2019-02-21 18:21 Chris Wilson
  2019-02-21 20:55 ` Chris Wilson
                   ` (19 more replies)
  0 siblings, 20 replies; 21+ messages in thread
From: Chris Wilson @ 2019-02-21 18:21 UTC (permalink / raw)
  To: intel-gfx

Needs a quick verification pass...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_isolation.c        | 129 ++++++++++++++++++++++----
 tests/intel-ci/fast-feedback.testlist |   1 +
 2 files changed, 113 insertions(+), 17 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 839d49ade..0c90d6590 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -68,7 +68,7 @@ static const struct named_register {
 } nonpriv_registers[] = {
 	{ "NOPID", NOCTX, RCS0, 0x2094 },
 	{ "MI_PREDICATE_RESULT_2", NOCTX, RCS0, 0x23bc },
-	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */, true },
+	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */ | 0x9a20, true },
 	{ "IA_VERTICES_COUNT", GEN4, RCS0, 0x2310, 2 },
 	{ "IA_PRIMITIVES_COUNT", GEN4, RCS0, 0x2318, 2 },
 	{ "VS_INVOCATION_COUNT", GEN4, RCS0, 0x2320, 2 },
@@ -78,7 +78,7 @@ static const struct named_register {
 	{ "GS_PRIMITIVES_COUNT", GEN4, RCS0, 0x2330, 2 },
 	{ "CL_INVOCATION_COUNT", GEN4, RCS0, 0x2338, 2 },
 	{ "CL_PRIMITIVES_COUNT", GEN4, RCS0, 0x2340, 2 },
-	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2 },
+	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2, .ignore_bits = 0x3 },
 	{ "PS_DEPTH_COUNT_0", GEN4, RCS0, 0x22d8, 2 },
 	{ "GPUGPU_DISPATCHDIMX", GEN8, RCS0, 0x2500 },
 	{ "GPUGPU_DISPATCHDIMY", GEN8, RCS0, 0x2504 },
@@ -86,7 +86,7 @@ static const struct named_register {
 	{ "MI_PREDICATE_SRC0", GEN8, RCS0, 0x2400, 2 },
 	{ "MI_PREDICATE_SRC1", GEN8, RCS0, 0x2408, 2 },
 	{ "MI_PREDICATE_DATA", GEN8, RCS0, 0x2410, 2 },
-	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418 },
+	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418, .ignore_bits = ~1u },
 	{ "3DPRIM_END_OFFSET", GEN6, RCS0, 0x2420 },
 	{ "3DPRIM_START_VERTEX", GEN6, RCS0, 0x2430 },
 	{ "3DPRIM_VERTEX_COUNT", GEN6, RCS0, 0x2434 },
@@ -94,20 +94,20 @@ static const struct named_register {
 	{ "3DPRIM_START_INSTANCE", GEN6, RCS0, 0x243c },
 	{ "3DPRIM_BASE_VERTEX", GEN6, RCS0, 0x2440 },
 	{ "GPGPU_THREADS_DISPATCHED", GEN8, RCS0, 0x2290, 2 },
-	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2 },
+	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2, .ignore_bits = 0x3 },
 	{ "PS_DEPTH_COUNT_1", GEN8, RCS0, 0x22f8, 2 },
 	{ "BB_OFFSET", GEN8, RCS0, 0x2158, .ignore_bits = 0x4 },
 	{ "MI_PREDICATE_RESULT_1", GEN8, RCS0, 0x241c },
 	{ "CS_GPR", GEN8, RCS0, 0x2600, 32 },
 	{ "OA_CTX_CONTROL", GEN8, RCS0, 0x2360 },
 	{ "OACTXID", GEN8, RCS0, 0x2364 },
-	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2 },
+	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2, .ignore_bits = 0x3 },
 	{ "PS_DEPTH_COUNT_2", GEN8, RCS0, 0x2450, 2 },
-	{ "Cache_Mode_0", GEN7, RCS0, 0x7000 },
-	{ "Cache_Mode_1", GEN7, RCS0, 0x7004 },
-	{ "GT_MODE", GEN8, RCS0, 0x7008 },
+	{ "Cache_Mode_0", GEN7, RCS0, 0x7000, .masked = true },
+	{ "Cache_Mode_1", GEN7, RCS0, 0x7004, .masked = true },
+	{ "GT_MODE", GEN8, RCS0, 0x7008, .masked = true },
 	{ "L3_Config", GEN7, RCS0, 0x7034 },
-	{ "TD_CTL", GEN8, RCS0, 0xe400 },
+	{ "TD_CTL", GEN8, RCS0, 0xe400, .masked = true },
 	{ "TD_CTL2", GEN8, RCS0, 0xe404 },
 	{ "SO_NUM_PRIMS_WRITEN0", GEN6, RCS0, 0x5200, 2 },
 	{ "SO_NUM_PRIMS_WRITEN1", GEN6, RCS0, 0x5208, 2 },
@@ -117,22 +117,22 @@ static const struct named_register {
 	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, RCS0, 0x5248, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, RCS0, 0x5250, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, RCS0, 0x5258, 2 },
-	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280 },
-	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284 },
-	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288 },
-	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c },
+	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c, .ignore_bits = 0x3 },
 	{ "OA_CONTROL", NOCTX, RCS0, 0x2b00 },
 	{ "PERF_CNT_1", NOCTX, RCS0, 0x91b8, 2 },
 	{ "PERF_CNT_2", NOCTX, RCS0, 0x91c0, 2 },
 
 	/* Privileged (enabled by w/a + FORCE_TO_NONPRIV) */
 	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, RCS0, 0x2248 },
-	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580 },
-	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304 },
-	{ "L3SQREG1", GEN8, RCS0, 0xb010 },
+	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580, .masked = true },
+	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304, .masked = true },
+	{ "L3SQREG4", GEN9, RCS0, 0xb118, .ignore_bits = 0x1ffff0 },
 
 	{ "BCS_GPR", GEN9, BCS0, 0x22600, 32 },
-	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200 },
+	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200, .masked = true },
 
 	{ "VCS0_GPR", GEN9, VCS0, 0x12600, 32 },
 	{ "MFC_VDBOX1", NOCTX, VCS0, 0x12800, 64 },
@@ -191,6 +191,45 @@ static bool ignore_register(uint32_t offset)
 	return false;
 }
 
+static uint32_t tmpl_regs(int fd,
+			  uint32_t ctx,
+			  const struct intel_execution_engine2 *e,
+			  unsigned int flags,
+			  uint32_t value)
+{
+	const unsigned int gen_bit = 1 << intel_gen(intel_get_drm_devid(fd));
+	const unsigned int engine_bit = ENGINE(e->class, e->instance);
+	unsigned int regs_size;
+	uint32_t handle;
+	uint32_t *regs;
+
+	regs_size = NUM_REGS * sizeof(uint32_t);
+	regs_size = PAGE_ALIGN(regs_size);
+
+	handle = gem_create(fd, regs_size);
+
+	regs = gem_mmap__cpu(fd, handle, 0, regs_size, PROT_WRITE);
+	gem_set_domain(fd, handle,
+		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
+
+	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
+		if (!(r->engine_mask & engine_bit))
+			continue;
+		if (!(r->gen_mask & gen_bit))
+			continue;
+		for (unsigned count = r->count ?: 1, offset = r->offset;
+		     count--; offset += 4) {
+			if (r->masked)
+				regs[offset/sizeof(*regs)] = value & 0xffff;
+			else
+				regs[offset/sizeof(*regs)] = value;
+		}
+	}
+	munmap(regs, regs_size);
+
+	return handle;
+}
+
 static uint32_t read_regs(int fd,
 			  uint32_t ctx,
 			  const struct intel_execution_engine2 *e,
@@ -474,6 +513,59 @@ static void compare_regs(int fd, uint32_t A, uint32_t B, const char *who)
 		     num_errors, who);
 }
 
+static void nonpriv(int fd,
+		    const struct intel_execution_engine2 *e,
+		    unsigned int flags)
+{
+	static const uint32_t values[] = {
+		0x0,
+		0xffffffff,
+		0xcccccccc,
+		0x33333333,
+		0x55555555,
+		0xaaaaaaaa,
+		0xdeadbeef
+	};
+	unsigned int engine =
+		gem_class_instance_to_eb_flags(fd, e->class, e->instance);
+	unsigned int num_values = ARRAY_SIZE(values);
+
+	gem_quiescent_gpu(fd);
+
+	for (int v = 0; v < num_values; v++) {
+		igt_spin_t *spin = NULL;
+		uint32_t ctx, regs[2], tmpl;
+
+		tmpl = tmpl_regs(fd, ctx, e, flags, values[v]);
+
+		ctx = gem_context_create(fd);
+		regs[0] = read_regs(fd, ctx, e, flags);
+
+		spin = igt_spin_batch_new(fd, .ctx = ctx, .engine = engine);
+
+		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
+				__func__, v, values[v]);
+		write_regs(fd, ctx, e, flags, values[v]);
+
+		regs[1] = read_regs(fd, ctx, e, flags);
+
+		/*
+		 * Restore the original register values before the HW idles.
+		 * Or else it may never restart!
+		 */
+		restore_regs(fd, ctx, e, flags, regs[0]);
+
+		igt_spin_batch_free(fd, spin);
+
+		compare_regs(fd, tmpl, regs[1], "nonpriv read/writes");
+
+		for (int n = 0; n < ARRAY_SIZE(regs); n++)
+			gem_close(fd, regs[n]);
+		gem_context_destroy(fd, ctx);
+		gem_close(fd, tmpl);
+	}
+}
+
 static void isolation(int fd,
 		      const struct intel_execution_engine2 *e,
 		      unsigned int flags)
@@ -715,6 +807,9 @@ igt_main
 				igt_fork_hang_detector(fd);
 			}
 
+			igt_subtest_f("%s-nonpriv", e->name)
+				nonpriv(fd, e, 0);
+
 			igt_subtest_f("%s-clean", e->name)
 				isolation(fd, e, 0);
 			igt_subtest_f("%s-dirty-create", e->name)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 2d22c2c1c..3ce2a18d6 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -12,6 +12,7 @@ igt@gem_close_race@basic-threads
 igt@gem_cpu_reloc@basic
 igt@gem_ctx_create@basic
 igt@gem_ctx_create@basic-files
+igt@gem_ctx_isolation@*-nonpriv
 igt@gem_ctx_exec@basic
 igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
-- 
2.20.1

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

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

* [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
@ 2019-02-21 20:55 ` Chris Wilson
  2019-02-21 21:43 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2) Patchwork
                   ` (18 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Chris Wilson @ 2019-02-21 20:55 UTC (permalink / raw)
  To: intel-gfx

Needs a quick verification pass...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_isolation.c        | 129 ++++++++++++++++++++++----
 tests/intel-ci/fast-feedback.testlist |   5 +
 2 files changed, 117 insertions(+), 17 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 839d49ade..0c90d6590 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -68,7 +68,7 @@ static const struct named_register {
 } nonpriv_registers[] = {
 	{ "NOPID", NOCTX, RCS0, 0x2094 },
 	{ "MI_PREDICATE_RESULT_2", NOCTX, RCS0, 0x23bc },
-	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */, true },
+	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */ | 0x9a20, true },
 	{ "IA_VERTICES_COUNT", GEN4, RCS0, 0x2310, 2 },
 	{ "IA_PRIMITIVES_COUNT", GEN4, RCS0, 0x2318, 2 },
 	{ "VS_INVOCATION_COUNT", GEN4, RCS0, 0x2320, 2 },
@@ -78,7 +78,7 @@ static const struct named_register {
 	{ "GS_PRIMITIVES_COUNT", GEN4, RCS0, 0x2330, 2 },
 	{ "CL_INVOCATION_COUNT", GEN4, RCS0, 0x2338, 2 },
 	{ "CL_PRIMITIVES_COUNT", GEN4, RCS0, 0x2340, 2 },
-	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2 },
+	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2, .ignore_bits = 0x3 },
 	{ "PS_DEPTH_COUNT_0", GEN4, RCS0, 0x22d8, 2 },
 	{ "GPUGPU_DISPATCHDIMX", GEN8, RCS0, 0x2500 },
 	{ "GPUGPU_DISPATCHDIMY", GEN8, RCS0, 0x2504 },
@@ -86,7 +86,7 @@ static const struct named_register {
 	{ "MI_PREDICATE_SRC0", GEN8, RCS0, 0x2400, 2 },
 	{ "MI_PREDICATE_SRC1", GEN8, RCS0, 0x2408, 2 },
 	{ "MI_PREDICATE_DATA", GEN8, RCS0, 0x2410, 2 },
-	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418 },
+	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418, .ignore_bits = ~1u },
 	{ "3DPRIM_END_OFFSET", GEN6, RCS0, 0x2420 },
 	{ "3DPRIM_START_VERTEX", GEN6, RCS0, 0x2430 },
 	{ "3DPRIM_VERTEX_COUNT", GEN6, RCS0, 0x2434 },
@@ -94,20 +94,20 @@ static const struct named_register {
 	{ "3DPRIM_START_INSTANCE", GEN6, RCS0, 0x243c },
 	{ "3DPRIM_BASE_VERTEX", GEN6, RCS0, 0x2440 },
 	{ "GPGPU_THREADS_DISPATCHED", GEN8, RCS0, 0x2290, 2 },
-	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2 },
+	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2, .ignore_bits = 0x3 },
 	{ "PS_DEPTH_COUNT_1", GEN8, RCS0, 0x22f8, 2 },
 	{ "BB_OFFSET", GEN8, RCS0, 0x2158, .ignore_bits = 0x4 },
 	{ "MI_PREDICATE_RESULT_1", GEN8, RCS0, 0x241c },
 	{ "CS_GPR", GEN8, RCS0, 0x2600, 32 },
 	{ "OA_CTX_CONTROL", GEN8, RCS0, 0x2360 },
 	{ "OACTXID", GEN8, RCS0, 0x2364 },
-	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2 },
+	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2, .ignore_bits = 0x3 },
 	{ "PS_DEPTH_COUNT_2", GEN8, RCS0, 0x2450, 2 },
-	{ "Cache_Mode_0", GEN7, RCS0, 0x7000 },
-	{ "Cache_Mode_1", GEN7, RCS0, 0x7004 },
-	{ "GT_MODE", GEN8, RCS0, 0x7008 },
+	{ "Cache_Mode_0", GEN7, RCS0, 0x7000, .masked = true },
+	{ "Cache_Mode_1", GEN7, RCS0, 0x7004, .masked = true },
+	{ "GT_MODE", GEN8, RCS0, 0x7008, .masked = true },
 	{ "L3_Config", GEN7, RCS0, 0x7034 },
-	{ "TD_CTL", GEN8, RCS0, 0xe400 },
+	{ "TD_CTL", GEN8, RCS0, 0xe400, .masked = true },
 	{ "TD_CTL2", GEN8, RCS0, 0xe404 },
 	{ "SO_NUM_PRIMS_WRITEN0", GEN6, RCS0, 0x5200, 2 },
 	{ "SO_NUM_PRIMS_WRITEN1", GEN6, RCS0, 0x5208, 2 },
@@ -117,22 +117,22 @@ static const struct named_register {
 	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, RCS0, 0x5248, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, RCS0, 0x5250, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, RCS0, 0x5258, 2 },
-	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280 },
-	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284 },
-	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288 },
-	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c },
+	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c, .ignore_bits = 0x3 },
 	{ "OA_CONTROL", NOCTX, RCS0, 0x2b00 },
 	{ "PERF_CNT_1", NOCTX, RCS0, 0x91b8, 2 },
 	{ "PERF_CNT_2", NOCTX, RCS0, 0x91c0, 2 },
 
 	/* Privileged (enabled by w/a + FORCE_TO_NONPRIV) */
 	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, RCS0, 0x2248 },
-	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580 },
-	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304 },
-	{ "L3SQREG1", GEN8, RCS0, 0xb010 },
+	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580, .masked = true },
+	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304, .masked = true },
+	{ "L3SQREG4", GEN9, RCS0, 0xb118, .ignore_bits = 0x1ffff0 },
 
 	{ "BCS_GPR", GEN9, BCS0, 0x22600, 32 },
-	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200 },
+	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200, .masked = true },
 
 	{ "VCS0_GPR", GEN9, VCS0, 0x12600, 32 },
 	{ "MFC_VDBOX1", NOCTX, VCS0, 0x12800, 64 },
@@ -191,6 +191,45 @@ static bool ignore_register(uint32_t offset)
 	return false;
 }
 
+static uint32_t tmpl_regs(int fd,
+			  uint32_t ctx,
+			  const struct intel_execution_engine2 *e,
+			  unsigned int flags,
+			  uint32_t value)
+{
+	const unsigned int gen_bit = 1 << intel_gen(intel_get_drm_devid(fd));
+	const unsigned int engine_bit = ENGINE(e->class, e->instance);
+	unsigned int regs_size;
+	uint32_t handle;
+	uint32_t *regs;
+
+	regs_size = NUM_REGS * sizeof(uint32_t);
+	regs_size = PAGE_ALIGN(regs_size);
+
+	handle = gem_create(fd, regs_size);
+
+	regs = gem_mmap__cpu(fd, handle, 0, regs_size, PROT_WRITE);
+	gem_set_domain(fd, handle,
+		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
+
+	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
+		if (!(r->engine_mask & engine_bit))
+			continue;
+		if (!(r->gen_mask & gen_bit))
+			continue;
+		for (unsigned count = r->count ?: 1, offset = r->offset;
+		     count--; offset += 4) {
+			if (r->masked)
+				regs[offset/sizeof(*regs)] = value & 0xffff;
+			else
+				regs[offset/sizeof(*regs)] = value;
+		}
+	}
+	munmap(regs, regs_size);
+
+	return handle;
+}
+
 static uint32_t read_regs(int fd,
 			  uint32_t ctx,
 			  const struct intel_execution_engine2 *e,
@@ -474,6 +513,59 @@ static void compare_regs(int fd, uint32_t A, uint32_t B, const char *who)
 		     num_errors, who);
 }
 
+static void nonpriv(int fd,
+		    const struct intel_execution_engine2 *e,
+		    unsigned int flags)
+{
+	static const uint32_t values[] = {
+		0x0,
+		0xffffffff,
+		0xcccccccc,
+		0x33333333,
+		0x55555555,
+		0xaaaaaaaa,
+		0xdeadbeef
+	};
+	unsigned int engine =
+		gem_class_instance_to_eb_flags(fd, e->class, e->instance);
+	unsigned int num_values = ARRAY_SIZE(values);
+
+	gem_quiescent_gpu(fd);
+
+	for (int v = 0; v < num_values; v++) {
+		igt_spin_t *spin = NULL;
+		uint32_t ctx, regs[2], tmpl;
+
+		tmpl = tmpl_regs(fd, ctx, e, flags, values[v]);
+
+		ctx = gem_context_create(fd);
+		regs[0] = read_regs(fd, ctx, e, flags);
+
+		spin = igt_spin_batch_new(fd, .ctx = ctx, .engine = engine);
+
+		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
+				__func__, v, values[v]);
+		write_regs(fd, ctx, e, flags, values[v]);
+
+		regs[1] = read_regs(fd, ctx, e, flags);
+
+		/*
+		 * Restore the original register values before the HW idles.
+		 * Or else it may never restart!
+		 */
+		restore_regs(fd, ctx, e, flags, regs[0]);
+
+		igt_spin_batch_free(fd, spin);
+
+		compare_regs(fd, tmpl, regs[1], "nonpriv read/writes");
+
+		for (int n = 0; n < ARRAY_SIZE(regs); n++)
+			gem_close(fd, regs[n]);
+		gem_context_destroy(fd, ctx);
+		gem_close(fd, tmpl);
+	}
+}
+
 static void isolation(int fd,
 		      const struct intel_execution_engine2 *e,
 		      unsigned int flags)
@@ -715,6 +807,9 @@ igt_main
 				igt_fork_hang_detector(fd);
 			}
 
+			igt_subtest_f("%s-nonpriv", e->name)
+				nonpriv(fd, e, 0);
+
 			igt_subtest_f("%s-clean", e->name)
 				isolation(fd, e, 0);
 			igt_subtest_f("%s-dirty-create", e->name)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 2d22c2c1c..87eb8bbb9 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -12,6 +12,11 @@ igt@gem_close_race@basic-threads
 igt@gem_cpu_reloc@basic
 igt@gem_ctx_create@basic
 igt@gem_ctx_create@basic-files
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv
 igt@gem_ctx_exec@basic
 igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
-- 
2.20.1

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

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

* ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
  2019-02-21 20:55 ` Chris Wilson
@ 2019-02-21 21:43 ` Patchwork
  2019-02-21 22:32 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (17 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-21 21:43 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2)
URL   : https://patchwork.freedesktop.org/series/57039/
State : success

== Summary ==

CI Bug Log - changes from IGT_4851 -> IGTPW_2477
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - fi-bsw-kefka:       NOTRUN -> FAIL
    - fi-bdw-gvtdvm:      NOTRUN -> FAIL
    - fi-bsw-n3050:       NOTRUN -> FAIL
    - fi-bdw-5557u:       NOTRUN -> FAIL

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-hsw-4770:        NOTRUN -> FAIL
    - fi-ivb-3770:        NOTRUN -> FAIL
    - fi-ivb-3520m:       NOTRUN -> FAIL
    - fi-byt-n2820:       NOTRUN -> FAIL
    - fi-hsw-peppy:       NOTRUN -> FAIL
    - fi-hsw-4770r:       NOTRUN -> FAIL

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-icl-u2:          NOTRUN -> SKIP +3
    - {fi-icl-y}:         NOTRUN -> SKIP +3

  
New tests
---------

  New tests have been introduced between IGT_4851 and IGTPW_2477:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 4 fail(s) 19 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.29] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 6 fail(s) 1 incomplete(s) 23 pass(s) 8 skip(s)
    - Exec time: [0.0, 0.19] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 23 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.19] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 8 pass(s) 29 skip(s)
    - Exec time: [0.0, 0.06] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 23 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.19] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-byt-n2820:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-bwr-2160:        NOTRUN -> SKIP [fdo#109271] +4
    - fi-snb-2520m:       NOTRUN -> INCOMPLETE [fdo#107469]

  * {igt@gem_ctx_isolation@vcs0-nonpriv} (NEW):
    - fi-gdg-551:         NOTRUN -> SKIP [fdo#109271] +4
    - fi-hsw-4770:        NOTRUN -> SKIP [fdo#109271] +3

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - fi-kbl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-7500u:       NOTRUN -> SKIP [fdo#109271]
    - fi-bsw-kefka:       NOTRUN -> SKIP [fdo#109271]
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109276]
    - fi-cfl-8700k:       NOTRUN -> SKIP [fdo#109271]
    - fi-ivb-3770:        NOTRUN -> SKIP [fdo#109271] +3
    - fi-bsw-n3050:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-bxt-j4205:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-8809g:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-r:           NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-x1275:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-6600u:       NOTRUN -> SKIP [fdo#109271]
    - fi-apl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-blb-e6850:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-skl-6700k2:      NOTRUN -> SKIP [fdo#109271]
    - {fi-icl-y}:         NOTRUN -> SKIP [fdo#109276]
    - fi-whl-u:           NOTRUN -> SKIP [fdo#109271]

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-hsw-peppy:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-ivb-3520m:       NOTRUN -> SKIP [fdo#109271] +3

  * igt@gem_exec_basic@readonly-bsd2:
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] +81

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       PASS -> SKIP [fdo#109271]

  * igt@i915_pm_rpm@basic-rte:
    - fi-bsw-kefka:       PASS -> FAIL [fdo#108800]

  * igt@kms_busy@basic-flip-c:
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  
#### Possible fixes ####

  * igt@i915_selftest@live_execlists:
    - fi-apl-guc:         INCOMPLETE [fdo#103927] / [fdo#109720] -> PASS

  * igt@kms_busy@basic-flip-b:
    - fi-gdg-551:         FAIL [fdo#103182] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109294]: https://bugs.freedesktop.org/show_bug.cgi?id=109294
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109527]: https://bugs.freedesktop.org/show_bug.cgi?id=109527
  [fdo#109528]: https://bugs.freedesktop.org/show_bug.cgi?id=109528
  [fdo#109530]: https://bugs.freedesktop.org/show_bug.cgi?id=109530
  [fdo#109720]: https://bugs.freedesktop.org/show_bug.cgi?id=109720


Participating hosts (43 -> 39)
------------------------------

  Additional (2): fi-icl-y fi-pnv-d510 
  Missing    (6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-bdw-samus 


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

    * IGT: IGT_4851 -> IGTPW_2477

  CI_DRM_5650: a4c5c4791699aeebfff694c222c76abb61900fca @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2477: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2477/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv

== Logs ==

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

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

* [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
  2019-02-21 20:55 ` Chris Wilson
  2019-02-21 21:43 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2) Patchwork
@ 2019-02-21 22:32 ` Chris Wilson
  2019-02-21 23:07 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3) Patchwork
                   ` (16 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Chris Wilson @ 2019-02-21 22:32 UTC (permalink / raw)
  To: intel-gfx

Needs a quick verification pass...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_isolation.c        | 254 ++++++++++++++++++--------
 tests/intel-ci/fast-feedback.testlist |   5 +
 2 files changed, 178 insertions(+), 81 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 839d49ade..099c5175a 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -59,96 +59,97 @@ enum {
 
 static const struct named_register {
 	const char *name;
-	unsigned int gen_mask;
-	unsigned int engine_mask;
-	uint32_t offset;
+	unsigned int read_mask; /* on which gen the register exists */
+	unsigned int write_mask; /* but it may only be writable on some gen! */
+	unsigned int engine_mask; /* preferred engine / powerwell */
+	uint32_t offset; /* address of register, from bottom of mmio bar */
 	uint32_t count;
 	uint32_t ignore_bits;
 	bool masked;
 } nonpriv_registers[] = {
-	{ "NOPID", NOCTX, RCS0, 0x2094 },
-	{ "MI_PREDICATE_RESULT_2", NOCTX, RCS0, 0x23bc },
-	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */, true },
-	{ "IA_VERTICES_COUNT", GEN4, RCS0, 0x2310, 2 },
-	{ "IA_PRIMITIVES_COUNT", GEN4, RCS0, 0x2318, 2 },
-	{ "VS_INVOCATION_COUNT", GEN4, RCS0, 0x2320, 2 },
-	{ "HS_INVOCATION_COUNT", GEN4, RCS0, 0x2300, 2 },
-	{ "DS_INVOCATION_COUNT", GEN4, RCS0, 0x2308, 2 },
-	{ "GS_INVOCATION_COUNT", GEN4, RCS0, 0x2328, 2 },
-	{ "GS_PRIMITIVES_COUNT", GEN4, RCS0, 0x2330, 2 },
-	{ "CL_INVOCATION_COUNT", GEN4, RCS0, 0x2338, 2 },
-	{ "CL_PRIMITIVES_COUNT", GEN4, RCS0, 0x2340, 2 },
-	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2 },
-	{ "PS_DEPTH_COUNT_0", GEN4, RCS0, 0x22d8, 2 },
-	{ "GPUGPU_DISPATCHDIMX", GEN8, RCS0, 0x2500 },
-	{ "GPUGPU_DISPATCHDIMY", GEN8, RCS0, 0x2504 },
-	{ "GPUGPU_DISPATCHDIMZ", GEN8, RCS0, 0x2508 },
-	{ "MI_PREDICATE_SRC0", GEN8, RCS0, 0x2400, 2 },
-	{ "MI_PREDICATE_SRC1", GEN8, RCS0, 0x2408, 2 },
-	{ "MI_PREDICATE_DATA", GEN8, RCS0, 0x2410, 2 },
-	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418 },
-	{ "3DPRIM_END_OFFSET", GEN6, RCS0, 0x2420 },
-	{ "3DPRIM_START_VERTEX", GEN6, RCS0, 0x2430 },
-	{ "3DPRIM_VERTEX_COUNT", GEN6, RCS0, 0x2434 },
-	{ "3DPRIM_INSTANCE_COUNT", GEN6, RCS0, 0x2438 },
-	{ "3DPRIM_START_INSTANCE", GEN6, RCS0, 0x243c },
-	{ "3DPRIM_BASE_VERTEX", GEN6, RCS0, 0x2440 },
-	{ "GPGPU_THREADS_DISPATCHED", GEN8, RCS0, 0x2290, 2 },
-	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2 },
-	{ "PS_DEPTH_COUNT_1", GEN8, RCS0, 0x22f8, 2 },
-	{ "BB_OFFSET", GEN8, RCS0, 0x2158, .ignore_bits = 0x4 },
-	{ "MI_PREDICATE_RESULT_1", GEN8, RCS0, 0x241c },
-	{ "CS_GPR", GEN8, RCS0, 0x2600, 32 },
-	{ "OA_CTX_CONTROL", GEN8, RCS0, 0x2360 },
-	{ "OACTXID", GEN8, RCS0, 0x2364 },
-	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2 },
-	{ "PS_DEPTH_COUNT_2", GEN8, RCS0, 0x2450, 2 },
-	{ "Cache_Mode_0", GEN7, RCS0, 0x7000 },
-	{ "Cache_Mode_1", GEN7, RCS0, 0x7004 },
-	{ "GT_MODE", GEN8, RCS0, 0x7008 },
-	{ "L3_Config", GEN7, RCS0, 0x7034 },
-	{ "TD_CTL", GEN8, RCS0, 0xe400 },
-	{ "TD_CTL2", GEN8, RCS0, 0xe404 },
-	{ "SO_NUM_PRIMS_WRITEN0", GEN6, RCS0, 0x5200, 2 },
-	{ "SO_NUM_PRIMS_WRITEN1", GEN6, RCS0, 0x5208, 2 },
-	{ "SO_NUM_PRIMS_WRITEN2", GEN6, RCS0, 0x5210, 2 },
-	{ "SO_NUM_PRIMS_WRITEN3", GEN6, RCS0, 0x5218, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, RCS0, 0x5240, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, RCS0, 0x5248, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, RCS0, 0x5250, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, RCS0, 0x5258, 2 },
-	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280 },
-	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284 },
-	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288 },
-	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c },
-	{ "OA_CONTROL", NOCTX, RCS0, 0x2b00 },
-	{ "PERF_CNT_1", NOCTX, RCS0, 0x91b8, 2 },
-	{ "PERF_CNT_2", NOCTX, RCS0, 0x91c0, 2 },
+	{ "NOPID", NOCTX, -1, RCS0, 0x2094 },
+	{ "MI_PREDICATE_RESULT_2", NOCTX, -1, RCS0, 0x23bc },
+	{ "INSTPM", GEN6, NOCTX /* rsvd bits vary by gen */, RCS0, 0x20c0, 1, BIT(8) /* r/o */, true },
+	{ "IA_VERTICES_COUNT", GEN4, GEN8, RCS0, 0x2310, 2 },
+	{ "IA_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2318, 2 },
+	{ "VS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2320, 2 },
+	{ "HS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2300, 2 },
+	{ "DS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2308, 2 },
+	{ "GS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2328, 2 },
+	{ "GS_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2330, 2 },
+	{ "CL_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2338, 2 },
+	{ "CL_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2340, 2 },
+	{ "PS_INVOCATION_COUNT_0", GEN4, GEN8, RCS0, 0x22c8, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_0", GEN4, GEN8, RCS0, 0x22d8, 2 },
+	{ "GPUGPU_DISPATCHDIMX", GEN8, -1, RCS0, 0x2500 },
+	{ "GPUGPU_DISPATCHDIMY", GEN8, -1, RCS0, 0x2504 },
+	{ "GPUGPU_DISPATCHDIMZ", GEN8, -1, RCS0, 0x2508 },
+	{ "MI_PREDICATE_SRC0", GEN8, -1, RCS0, 0x2400, 2 },
+	{ "MI_PREDICATE_SRC1", GEN8, -1, RCS0, 0x2408, 2 },
+	{ "MI_PREDICATE_DATA", GEN8, -1, RCS0, 0x2410, 2 },
+	{ "MI_PRED_RESULT", GEN8, -1, RCS0, 0x2418, .ignore_bits = ~1u },
+	{ "3DPRIM_END_OFFSET", GEN6, GEN7, RCS0, 0x2420 },
+	{ "3DPRIM_START_VERTEX", GEN6, GEN7, RCS0, 0x2430 },
+	{ "3DPRIM_VERTEX_COUNT", GEN6, GEN7, RCS0, 0x2434 },
+	{ "3DPRIM_INSTANCE_COUNT", GEN6, GEN7, RCS0, 0x2438 },
+	{ "3DPRIM_START_INSTANCE", GEN6, GEN7, RCS0, 0x243c },
+	{ "3DPRIM_BASE_VERTEX", GEN6, GEN7, RCS0, 0x2440 },
+	{ "GPGPU_THREADS_DISPATCHED", GEN8, -1, RCS0, 0x2290, 2 },
+	{ "PS_INVOCATION_COUNT_1", GEN8, -1, RCS0, 0x22f0, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_1", GEN8, -1, RCS0, 0x22f8, 2 },
+	{ "BB_OFFSET", GEN8, -1, RCS0, 0x2158, .ignore_bits = 0x4 },
+	{ "MI_PREDICATE_RESULT_1", GEN8, -1, RCS0, 0x241c },
+	{ "CS_GPR", GEN8, -1, RCS0, 0x2600, 32 },
+	{ "OA_CTX_CONTROL", GEN8, -1, RCS0, 0x2360 },
+	{ "OACTXID", GEN8, -1, RCS0, 0x2364 },
+	{ "PS_INVOCATION_COUNT_2", GEN8, -1, RCS0, 0x2448, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_2", GEN8, -1, RCS0, 0x2450, 2 },
+	{ "Cache_Mode_0", GEN7, GEN8, RCS0, 0x7000, .masked = true },
+	{ "Cache_Mode_1", GEN7, GEN8, RCS0, 0x7004, .masked = true },
+	{ "GT_MODE", GEN8, -1, RCS0, 0x7008, .masked = true },
+	{ "L3_Config", GEN7, -1, RCS0, 0x7034 },
+	{ "TD_CTL", GEN8, -1, RCS0, 0xe400, .masked = true },
+	{ "TD_CTL2", GEN8, -1, RCS0, 0xe404 },
+	{ "SO_NUM_PRIMS_WRITEN0", GEN6, -1, RCS0, 0x5200, 2 },
+	{ "SO_NUM_PRIMS_WRITEN1", GEN6, -1, RCS0, 0x5208, 2 },
+	{ "SO_NUM_PRIMS_WRITEN2", GEN6, -1, RCS0, 0x5210, 2 },
+	{ "SO_NUM_PRIMS_WRITEN3", GEN6, -1, RCS0, 0x5218, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, -1, RCS0, 0x5240, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, -1, RCS0, 0x5248, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, -1, RCS0, 0x5250, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, -1, RCS0, 0x5258, 2 },
+	{ "SO_WRITE_OFFSET0", GEN7, -1, RCS0, 0x5280, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET1", GEN7, -1, RCS0, 0x5284, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET2", GEN7, -1, RCS0, 0x5288, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET3", GEN7, -1, RCS0, 0x528c, .ignore_bits = 0x3 },
+	{ "OA_CONTROL", NOCTX, -1, RCS0, 0x2b00 },
+	{ "PERF_CNT_1", NOCTX, -1, RCS0, 0x91b8, 2 },
+	{ "PERF_CNT_2", NOCTX, -1, RCS0, 0x91c0, 2 },
 
 	/* Privileged (enabled by w/a + FORCE_TO_NONPRIV) */
-	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, RCS0, 0x2248 },
-	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580 },
-	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304 },
-	{ "L3SQREG1", GEN8, RCS0, 0xb010 },
+	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, -1, RCS0, 0x2248 },
+	{ "CS_CHICKEN1", GEN_RANGE(9, 10), -1, RCS0, 0x2580, .masked = true },
+	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), -1, RCS0, 0x7304, .masked = true },
+	{ "L3SQREG4", GEN9, -1, RCS0, 0xb118, .ignore_bits = 0x1ffff0 },
 
-	{ "BCS_GPR", GEN9, BCS0, 0x22600, 32 },
-	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200 },
+	{ "BCS_GPR", GEN9, -1, BCS0, 0x22600, 32 },
+	{ "BCS_SWCTRL", GEN8, -1, BCS0, 0x22200, .ignore_bits = ~0x3, .masked = true },
 
-	{ "VCS0_GPR", GEN9, VCS0, 0x12600, 32 },
-	{ "MFC_VDBOX1", NOCTX, VCS0, 0x12800, 64 },
+	{ "VCS0_GPR", GEN9, -1, VCS0, 0x12600, 32 },
+	{ "MFC_VDBOX1", NOCTX, -1, VCS0, 0x12800, 64 },
 
-	{ "VCS1_GPR", GEN9, VCS1, 0x1c600, 32 },
-	{ "MFC_VDBOX2", NOCTX, VCS1, 0x1c800, 64 },
+	{ "VCS1_GPR", GEN9, -1, VCS1, 0x1c600, 32 },
+	{ "MFC_VDBOX2", NOCTX, -1, VCS1, 0x1c800, 64 },
 
-	{ "VECS_GPR", GEN9, VECS0, 0x1a600, 32 },
+	{ "VECS_GPR", GEN9, -1, VECS0, 0x1a600, 32 },
 
 	{}
 }, ignore_registers[] = {
-	{ "RCS timestamp", GEN6, ~0u, 0x2358 },
-	{ "VCS0 timestamp", GEN7, ~0u, 0x12358 },
-	{ "VCS1 timestamp", GEN7, ~0u, 0x1c358 },
-	{ "BCS timestamp", GEN7, ~0u, 0x22358 },
-	{ "VECS timestamp", GEN8, ~0u, 0x1a358 },
+	{ "RCS timestamp", GEN6, -1, ~0u, 0x2358 },
+	{ "VCS0 timestamp", GEN7, -1, ~0u, 0x12358 },
+	{ "VCS1 timestamp", GEN7, -1, ~0u, 0x1c358 },
+	{ "BCS timestamp", GEN7, -1, ~0u, 0x22358 },
+	{ "VECS timestamp", GEN8, -1, ~0u, 0x1a358 },
 	{}
 };
 
@@ -191,6 +192,40 @@ static bool ignore_register(uint32_t offset)
 	return false;
 }
 
+static void tmpl_regs(int fd,
+		      uint32_t ctx,
+		      const struct intel_execution_engine2 *e,
+		      uint32_t handle,
+		      uint32_t value)
+{
+	const unsigned int gen_bit = 1 << intel_gen(intel_get_drm_devid(fd));
+	const unsigned int engine_bit = ENGINE(e->class, e->instance);
+	unsigned int regs_size;
+	uint32_t *regs;
+
+	regs_size = NUM_REGS * sizeof(uint32_t);
+	regs_size = PAGE_ALIGN(regs_size);
+
+	regs = gem_mmap__cpu(fd, handle, 0, regs_size, PROT_WRITE);
+	gem_set_domain(fd, handle,
+		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
+
+	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
+		if (!(r->engine_mask & engine_bit))
+			continue;
+		if (!(r->write_mask & r->read_mask & gen_bit))
+			continue;
+		for (unsigned count = r->count ?: 1, offset = r->offset;
+		     count--; offset += 4) {
+			if (r->masked)
+				regs[offset/sizeof(*regs)] = value & 0xffff;
+			else
+				regs[offset/sizeof(*regs)] = value;
+		}
+	}
+	munmap(regs, regs_size);
+}
+
 static uint32_t read_regs(int fd,
 			  uint32_t ctx,
 			  const struct intel_execution_engine2 *e,
@@ -228,7 +263,7 @@ static uint32_t read_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->read_mask & gen_bit))
 			continue;
 
 		for (unsigned count = r->count ?: 1, offset = r->offset;
@@ -290,7 +325,7 @@ static void write_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->write_mask & r->read_mask & gen_bit))
 			continue;
 		for (unsigned count = r->count ?: 1, offset = r->offset;
 		     count--; offset += 4) {
@@ -353,7 +388,7 @@ static void restore_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->write_mask & r->read_mask & gen_bit))
 			continue;
 
 		for (unsigned count = r->count ?: 1, offset = r->offset;
@@ -406,7 +441,7 @@ static void dump_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->read_mask & gen_bit))
 			continue;
 
 		if (r->count <= 1) {
@@ -474,6 +509,60 @@ static void compare_regs(int fd, uint32_t A, uint32_t B, const char *who)
 		     num_errors, who);
 }
 
+static void nonpriv(int fd,
+		    const struct intel_execution_engine2 *e,
+		    unsigned int flags)
+{
+	static const uint32_t values[] = {
+		0x0,
+		0xffffffff,
+		0xcccccccc,
+		0x33333333,
+		0x55555555,
+		0xaaaaaaaa,
+		0xdeadbeef
+	};
+	unsigned int engine =
+		gem_class_instance_to_eb_flags(fd, e->class, e->instance);
+	unsigned int num_values = ARRAY_SIZE(values);
+
+	gem_quiescent_gpu(fd);
+
+	for (int v = 0; v < num_values; v++) {
+		igt_spin_t *spin = NULL;
+		uint32_t ctx, regs[2], tmpl;
+
+		ctx = gem_context_create(fd);
+		tmpl = read_regs(fd, ctx, e, flags);
+		regs[0] = read_regs(fd, ctx, e, flags);
+
+		tmpl_regs(fd, ctx, e, tmpl, values[v]);
+
+		spin = igt_spin_batch_new(fd, .ctx = ctx, .engine = engine);
+
+		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
+			  __func__, v, values[v]);
+		write_regs(fd, ctx, e, flags, values[v]);
+
+		regs[1] = read_regs(fd, ctx, e, flags);
+
+		/*
+		 * Restore the original register values before the HW idles.
+		 * Or else it may never restart!
+		 */
+		restore_regs(fd, ctx, e, flags, regs[0]);
+
+		igt_spin_batch_free(fd, spin);
+
+		compare_regs(fd, tmpl, regs[1], "nonpriv read/writes");
+
+		for (int n = 0; n < ARRAY_SIZE(regs); n++)
+			gem_close(fd, regs[n]);
+		gem_context_destroy(fd, ctx);
+		gem_close(fd, tmpl);
+	}
+}
+
 static void isolation(int fd,
 		      const struct intel_execution_engine2 *e,
 		      unsigned int flags)
@@ -715,6 +804,9 @@ igt_main
 				igt_fork_hang_detector(fd);
 			}
 
+			igt_subtest_f("%s-nonpriv", e->name)
+				nonpriv(fd, e, 0);
+
 			igt_subtest_f("%s-clean", e->name)
 				isolation(fd, e, 0);
 			igt_subtest_f("%s-dirty-create", e->name)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 2d22c2c1c..87eb8bbb9 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -12,6 +12,11 @@ igt@gem_close_race@basic-threads
 igt@gem_cpu_reloc@basic
 igt@gem_ctx_create@basic
 igt@gem_ctx_create@basic-files
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv
 igt@gem_ctx_exec@basic
 igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
-- 
2.20.1

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

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

* ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (2 preceding siblings ...)
  2019-02-21 22:32 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
@ 2019-02-21 23:07 ` Patchwork
  2019-02-21 23:32 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (15 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-21 23:07 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3)
URL   : https://patchwork.freedesktop.org/series/57039/
State : success

== Summary ==

CI Bug Log - changes from IGT_4851 -> IGTPW_2481
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/3/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-hsw-4770:        NOTRUN -> FAIL
    - fi-ivb-3770:        NOTRUN -> FAIL
    - fi-snb-2520m:       NOTRUN -> FAIL
    - fi-ivb-3520m:       NOTRUN -> FAIL
    - fi-byt-n2820:       NOTRUN -> FAIL
    - fi-hsw-peppy:       NOTRUN -> FAIL
    - fi-hsw-4770r:       NOTRUN -> FAIL

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-icl-u2:          NOTRUN -> SKIP +3

  
New tests
---------

  New tests have been introduced between IGT_4851 and IGTPW_2481:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 23 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.23] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 7 fail(s) 23 pass(s) 7 skip(s)
    - Exec time: [0.0, 0.64] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 23 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.22] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 8 pass(s) 29 skip(s)
    - Exec time: [0.0, 0.08] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 23 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.23] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-byt-n2820:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-bwr-2160:        NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@vcs0-nonpriv} (NEW):
    - fi-gdg-551:         NOTRUN -> SKIP [fdo#109271] +4
    - fi-hsw-4770:        NOTRUN -> SKIP [fdo#109271] +3

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - fi-kbl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-7500u:       NOTRUN -> SKIP [fdo#109271]
    - fi-bsw-kefka:       NOTRUN -> SKIP [fdo#109271]
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109276]
    - fi-cfl-8700k:       NOTRUN -> SKIP [fdo#109271]
    - fi-ivb-3770:        NOTRUN -> SKIP [fdo#109271] +3
    - fi-bsw-n3050:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-bxt-j4205:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-8809g:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-r:           NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-x1275:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-6600u:       NOTRUN -> SKIP [fdo#109271]
    - fi-apl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-blb-e6850:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-skl-6700k2:      NOTRUN -> SKIP [fdo#109271]
    - fi-whl-u:           NOTRUN -> SKIP [fdo#109271]

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-hsw-peppy:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-ivb-3520m:       NOTRUN -> SKIP [fdo#109271] +3

  * igt@gem_exec_basic@readonly-bsd2:
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] +81

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       PASS -> SKIP [fdo#109271]

  * igt@i915_pm_rpm@basic-rte:
    - fi-bsw-kefka:       PASS -> FAIL [fdo#108800]

  * igt@i915_selftest@live_evict:
    - fi-bsw-kefka:       PASS -> DMESG-WARN [fdo#107709]

  * igt@kms_busy@basic-flip-c:
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@prime_vgem@basic-fence-flip:
    - fi-ilk-650:         PASS -> FAIL [fdo#104008]

  * igt@runner@aborted:
    - fi-bsw-kefka:       NOTRUN -> FAIL [fdo#107709]

  
#### Possible fixes ####

  * igt@kms_busy@basic-flip-b:
    - fi-gdg-551:         FAIL [fdo#103182] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008
  [fdo#107709]: https://bugs.freedesktop.org/show_bug.cgi?id=107709
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (43 -> 38)
------------------------------

  Additional (1): fi-pnv-d510 
  Missing    (6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-bdw-samus 


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

    * IGT: IGT_4851 -> IGTPW_2481

  CI_DRM_5650: a4c5c4791699aeebfff694c222c76abb61900fca @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2481: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2481/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv

== Logs ==

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

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

* [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (3 preceding siblings ...)
  2019-02-21 23:07 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3) Patchwork
@ 2019-02-21 23:32 ` Chris Wilson
  2019-02-22  0:09 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4) Patchwork
                   ` (14 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Chris Wilson @ 2019-02-21 23:32 UTC (permalink / raw)
  To: intel-gfx

Verify that our list of nonpriv registers exist and are writable.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_isolation.c        | 254 ++++++++++++++++++--------
 tests/intel-ci/fast-feedback.testlist |   5 +
 2 files changed, 178 insertions(+), 81 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 839d49ade..63b5ee61c 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -59,96 +59,97 @@ enum {
 
 static const struct named_register {
 	const char *name;
-	unsigned int gen_mask;
-	unsigned int engine_mask;
-	uint32_t offset;
+	unsigned int read_mask; /* on which gen the register exists */
+	unsigned int write_mask; /* but it may only be writable on some gen! */
+	unsigned int engine_mask; /* preferred engine / powerwell */
+	uint32_t offset; /* address of register, from bottom of mmio bar */
 	uint32_t count;
 	uint32_t ignore_bits;
 	bool masked;
 } nonpriv_registers[] = {
-	{ "NOPID", NOCTX, RCS0, 0x2094 },
-	{ "MI_PREDICATE_RESULT_2", NOCTX, RCS0, 0x23bc },
-	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */, true },
-	{ "IA_VERTICES_COUNT", GEN4, RCS0, 0x2310, 2 },
-	{ "IA_PRIMITIVES_COUNT", GEN4, RCS0, 0x2318, 2 },
-	{ "VS_INVOCATION_COUNT", GEN4, RCS0, 0x2320, 2 },
-	{ "HS_INVOCATION_COUNT", GEN4, RCS0, 0x2300, 2 },
-	{ "DS_INVOCATION_COUNT", GEN4, RCS0, 0x2308, 2 },
-	{ "GS_INVOCATION_COUNT", GEN4, RCS0, 0x2328, 2 },
-	{ "GS_PRIMITIVES_COUNT", GEN4, RCS0, 0x2330, 2 },
-	{ "CL_INVOCATION_COUNT", GEN4, RCS0, 0x2338, 2 },
-	{ "CL_PRIMITIVES_COUNT", GEN4, RCS0, 0x2340, 2 },
-	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2 },
-	{ "PS_DEPTH_COUNT_0", GEN4, RCS0, 0x22d8, 2 },
-	{ "GPUGPU_DISPATCHDIMX", GEN8, RCS0, 0x2500 },
-	{ "GPUGPU_DISPATCHDIMY", GEN8, RCS0, 0x2504 },
-	{ "GPUGPU_DISPATCHDIMZ", GEN8, RCS0, 0x2508 },
-	{ "MI_PREDICATE_SRC0", GEN8, RCS0, 0x2400, 2 },
-	{ "MI_PREDICATE_SRC1", GEN8, RCS0, 0x2408, 2 },
-	{ "MI_PREDICATE_DATA", GEN8, RCS0, 0x2410, 2 },
-	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418 },
-	{ "3DPRIM_END_OFFSET", GEN6, RCS0, 0x2420 },
-	{ "3DPRIM_START_VERTEX", GEN6, RCS0, 0x2430 },
-	{ "3DPRIM_VERTEX_COUNT", GEN6, RCS0, 0x2434 },
-	{ "3DPRIM_INSTANCE_COUNT", GEN6, RCS0, 0x2438 },
-	{ "3DPRIM_START_INSTANCE", GEN6, RCS0, 0x243c },
-	{ "3DPRIM_BASE_VERTEX", GEN6, RCS0, 0x2440 },
-	{ "GPGPU_THREADS_DISPATCHED", GEN8, RCS0, 0x2290, 2 },
-	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2 },
-	{ "PS_DEPTH_COUNT_1", GEN8, RCS0, 0x22f8, 2 },
-	{ "BB_OFFSET", GEN8, RCS0, 0x2158, .ignore_bits = 0x4 },
-	{ "MI_PREDICATE_RESULT_1", GEN8, RCS0, 0x241c },
-	{ "CS_GPR", GEN8, RCS0, 0x2600, 32 },
-	{ "OA_CTX_CONTROL", GEN8, RCS0, 0x2360 },
-	{ "OACTXID", GEN8, RCS0, 0x2364 },
-	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2 },
-	{ "PS_DEPTH_COUNT_2", GEN8, RCS0, 0x2450, 2 },
-	{ "Cache_Mode_0", GEN7, RCS0, 0x7000 },
-	{ "Cache_Mode_1", GEN7, RCS0, 0x7004 },
-	{ "GT_MODE", GEN8, RCS0, 0x7008 },
-	{ "L3_Config", GEN7, RCS0, 0x7034 },
-	{ "TD_CTL", GEN8, RCS0, 0xe400 },
-	{ "TD_CTL2", GEN8, RCS0, 0xe404 },
-	{ "SO_NUM_PRIMS_WRITEN0", GEN6, RCS0, 0x5200, 2 },
-	{ "SO_NUM_PRIMS_WRITEN1", GEN6, RCS0, 0x5208, 2 },
-	{ "SO_NUM_PRIMS_WRITEN2", GEN6, RCS0, 0x5210, 2 },
-	{ "SO_NUM_PRIMS_WRITEN3", GEN6, RCS0, 0x5218, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, RCS0, 0x5240, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, RCS0, 0x5248, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, RCS0, 0x5250, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, RCS0, 0x5258, 2 },
-	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280 },
-	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284 },
-	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288 },
-	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c },
-	{ "OA_CONTROL", NOCTX, RCS0, 0x2b00 },
-	{ "PERF_CNT_1", NOCTX, RCS0, 0x91b8, 2 },
-	{ "PERF_CNT_2", NOCTX, RCS0, 0x91c0, 2 },
+	{ "NOPID", NOCTX, -1, RCS0, 0x2094 },
+	{ "MI_PREDICATE_RESULT_2", NOCTX, -1, RCS0, 0x23bc },
+	{ "INSTPM", GEN6, 0 /* rsvd bits vary by gen */, RCS0, 0x20c0, 1, BIT(8) /* r/o counter */, true },
+	{ "IA_VERTICES_COUNT", GEN4, GEN8, RCS0, 0x2310, 2 },
+	{ "IA_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2318, 2 },
+	{ "VS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2320, 2 },
+	{ "HS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2300, 2 },
+	{ "DS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2308, 2 },
+	{ "GS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2328, 2 },
+	{ "GS_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2330, 2 },
+	{ "CL_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2338, 2 },
+	{ "CL_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2340, 2 },
+	{ "PS_INVOCATION_COUNT_0", GEN4, GEN8, RCS0, 0x22c8, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_0", GEN4, GEN8, RCS0, 0x22d8, 2 },
+	{ "GPUGPU_DISPATCHDIMX", GEN8, -1, RCS0, 0x2500 },
+	{ "GPUGPU_DISPATCHDIMY", GEN8, -1, RCS0, 0x2504 },
+	{ "GPUGPU_DISPATCHDIMZ", GEN8, -1, RCS0, 0x2508 },
+	{ "MI_PREDICATE_SRC0", GEN8, -1, RCS0, 0x2400, 2 },
+	{ "MI_PREDICATE_SRC1", GEN8, -1, RCS0, 0x2408, 2 },
+	{ "MI_PREDICATE_DATA", GEN8, -1, RCS0, 0x2410, 2 },
+	{ "MI_PRED_RESULT", GEN8, -1, RCS0, 0x2418, .ignore_bits = ~1u },
+	{ "3DPRIM_END_OFFSET", GEN6, GEN7, RCS0, 0x2420 },
+	{ "3DPRIM_START_VERTEX", GEN6, GEN7, RCS0, 0x2430 },
+	{ "3DPRIM_VERTEX_COUNT", GEN6, GEN7, RCS0, 0x2434 },
+	{ "3DPRIM_INSTANCE_COUNT", GEN6, GEN7, RCS0, 0x2438 },
+	{ "3DPRIM_START_INSTANCE", GEN6, GEN7, RCS0, 0x243c },
+	{ "3DPRIM_BASE_VERTEX", GEN6, GEN7, RCS0, 0x2440 },
+	{ "GPGPU_THREADS_DISPATCHED", GEN8, -1, RCS0, 0x2290, 2 },
+	{ "PS_INVOCATION_COUNT_1", GEN8, -1, RCS0, 0x22f0, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_1", GEN8, -1, RCS0, 0x22f8, 2 },
+	{ "BB_OFFSET", GEN8, -1, RCS0, 0x2158, .ignore_bits = 0x4 },
+	{ "MI_PREDICATE_RESULT_1", GEN8, -1, RCS0, 0x241c },
+	{ "CS_GPR", GEN8, -1, RCS0, 0x2600, 32 },
+	{ "OA_CTX_CONTROL", GEN8, -1, RCS0, 0x2360 },
+	{ "OACTXID", GEN8, -1, RCS0, 0x2364 },
+	{ "PS_INVOCATION_COUNT_2", GEN8, -1, RCS0, 0x2448, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_2", GEN8, -1, RCS0, 0x2450, 2 },
+	{ "Cache_Mode_0", GEN7, GEN8, RCS0, 0x7000, .masked = true },
+	{ "Cache_Mode_1", GEN7, GEN8, RCS0, 0x7004, .masked = true },
+	{ "GT_MODE", GEN8, -1, RCS0, 0x7008, .masked = true },
+	{ "L3_Config", GEN8, -1, RCS0, 0x7034 },
+	{ "TD_CTL", GEN8, -1, RCS0, 0xe400, .masked = true },
+	{ "TD_CTL2", GEN8, -1, RCS0, 0xe404 },
+	{ "SO_NUM_PRIMS_WRITTEN0", GEN6, GEN7, RCS0, 0x5200, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN1", GEN6, GEN7, RCS0, 0x5208, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN2", GEN6, GEN7, RCS0, 0x5210, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN3", GEN6, GEN7, RCS0, 0x5218, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, GEN7, RCS0, 0x5240, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, GEN7, RCS0, 0x5248, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, GEN7, RCS0, 0x5250, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, GEN7, RCS0, 0x5258, 2 },
+	{ "SO_WRITE_OFFSET0", GEN7, -1, RCS0, 0x5280, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET1", GEN7, -1, RCS0, 0x5284, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET2", GEN7, -1, RCS0, 0x5288, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET3", GEN7, -1, RCS0, 0x528c, .ignore_bits = 0x3 },
+	{ "OA_CONTROL", NOCTX, -1, RCS0, 0x2b00 },
+	{ "PERF_CNT_1", NOCTX, -1, RCS0, 0x91b8, 2 },
+	{ "PERF_CNT_2", NOCTX, -1, RCS0, 0x91c0, 2 },
 
 	/* Privileged (enabled by w/a + FORCE_TO_NONPRIV) */
-	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, RCS0, 0x2248 },
-	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580 },
-	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304 },
-	{ "L3SQREG1", GEN8, RCS0, 0xb010 },
+	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, -1, RCS0, 0x2248 },
+	{ "CS_CHICKEN1", GEN_RANGE(9, 10), -1, RCS0, 0x2580, .masked = true },
+	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), -1, RCS0, 0x7304, .masked = true },
+	{ "L3SQREG4", GEN9, -1, RCS0, 0xb118, .ignore_bits = 0x1ffff0 },
 
-	{ "BCS_GPR", GEN9, BCS0, 0x22600, 32 },
-	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200 },
+	{ "BCS_GPR", GEN9, -1, BCS0, 0x22600, 32 },
+	{ "BCS_SWCTRL", GEN8, -1, BCS0, 0x22200, .ignore_bits = ~0x3, .masked = true },
 
-	{ "VCS0_GPR", GEN9, VCS0, 0x12600, 32 },
-	{ "MFC_VDBOX1", NOCTX, VCS0, 0x12800, 64 },
+	{ "VCS0_GPR", GEN9, -1, VCS0, 0x12600, 32 },
+	{ "MFC_VDBOX1", NOCTX, -1, VCS0, 0x12800, 64 },
 
-	{ "VCS1_GPR", GEN9, VCS1, 0x1c600, 32 },
-	{ "MFC_VDBOX2", NOCTX, VCS1, 0x1c800, 64 },
+	{ "VCS1_GPR", GEN9, -1, VCS1, 0x1c600, 32 },
+	{ "MFC_VDBOX2", NOCTX, -1, VCS1, 0x1c800, 64 },
 
-	{ "VECS_GPR", GEN9, VECS0, 0x1a600, 32 },
+	{ "VECS_GPR", GEN9, -1, VECS0, 0x1a600, 32 },
 
 	{}
 }, ignore_registers[] = {
-	{ "RCS timestamp", GEN6, ~0u, 0x2358 },
-	{ "VCS0 timestamp", GEN7, ~0u, 0x12358 },
-	{ "VCS1 timestamp", GEN7, ~0u, 0x1c358 },
-	{ "BCS timestamp", GEN7, ~0u, 0x22358 },
-	{ "VECS timestamp", GEN8, ~0u, 0x1a358 },
+	{ "RCS timestamp", GEN6, -1, ~0u, 0x2358 },
+	{ "VCS0 timestamp", GEN7, -1, ~0u, 0x12358 },
+	{ "VCS1 timestamp", GEN7, -1, ~0u, 0x1c358 },
+	{ "BCS timestamp", GEN7, -1, ~0u, 0x22358 },
+	{ "VECS timestamp", GEN8, -1, ~0u, 0x1a358 },
 	{}
 };
 
@@ -191,6 +192,40 @@ static bool ignore_register(uint32_t offset)
 	return false;
 }
 
+static void tmpl_regs(int fd,
+		      uint32_t ctx,
+		      const struct intel_execution_engine2 *e,
+		      uint32_t handle,
+		      uint32_t value)
+{
+	const unsigned int gen_bit = 1 << intel_gen(intel_get_drm_devid(fd));
+	const unsigned int engine_bit = ENGINE(e->class, e->instance);
+	unsigned int regs_size;
+	uint32_t *regs;
+
+	regs_size = NUM_REGS * sizeof(uint32_t);
+	regs_size = PAGE_ALIGN(regs_size);
+
+	regs = gem_mmap__cpu(fd, handle, 0, regs_size, PROT_WRITE);
+	gem_set_domain(fd, handle,
+		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
+
+	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
+		if (!(r->engine_mask & engine_bit))
+			continue;
+		if (!(r->write_mask & r->read_mask & gen_bit))
+			continue;
+		for (unsigned count = r->count ?: 1, offset = r->offset;
+		     count--; offset += 4) {
+			if (r->masked)
+				regs[offset/sizeof(*regs)] = value & 0xffff;
+			else
+				regs[offset/sizeof(*regs)] = value;
+		}
+	}
+	munmap(regs, regs_size);
+}
+
 static uint32_t read_regs(int fd,
 			  uint32_t ctx,
 			  const struct intel_execution_engine2 *e,
@@ -228,7 +263,7 @@ static uint32_t read_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->read_mask & gen_bit))
 			continue;
 
 		for (unsigned count = r->count ?: 1, offset = r->offset;
@@ -290,7 +325,7 @@ static void write_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->write_mask & r->read_mask & gen_bit))
 			continue;
 		for (unsigned count = r->count ?: 1, offset = r->offset;
 		     count--; offset += 4) {
@@ -353,7 +388,7 @@ static void restore_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->write_mask & r->read_mask & gen_bit))
 			continue;
 
 		for (unsigned count = r->count ?: 1, offset = r->offset;
@@ -406,7 +441,7 @@ static void dump_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->read_mask & gen_bit))
 			continue;
 
 		if (r->count <= 1) {
@@ -474,6 +509,60 @@ static void compare_regs(int fd, uint32_t A, uint32_t B, const char *who)
 		     num_errors, who);
 }
 
+static void nonpriv(int fd,
+		    const struct intel_execution_engine2 *e,
+		    unsigned int flags)
+{
+	static const uint32_t values[] = {
+		0x0,
+		0xffffffff,
+		0xcccccccc,
+		0x33333333,
+		0x55555555,
+		0xaaaaaaaa,
+		0xdeadbeef
+	};
+	unsigned int engine =
+		gem_class_instance_to_eb_flags(fd, e->class, e->instance);
+	unsigned int num_values = ARRAY_SIZE(values);
+
+	gem_quiescent_gpu(fd);
+
+	for (int v = 0; v < num_values; v++) {
+		igt_spin_t *spin = NULL;
+		uint32_t ctx, regs[2], tmpl;
+
+		ctx = gem_context_create(fd);
+		tmpl = read_regs(fd, ctx, e, flags);
+		regs[0] = read_regs(fd, ctx, e, flags);
+
+		tmpl_regs(fd, ctx, e, tmpl, values[v]);
+
+		spin = igt_spin_batch_new(fd, .ctx = ctx, .engine = engine);
+
+		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
+			  __func__, v, values[v]);
+		write_regs(fd, ctx, e, flags, values[v]);
+
+		regs[1] = read_regs(fd, ctx, e, flags);
+
+		/*
+		 * Restore the original register values before the HW idles.
+		 * Or else it may never restart!
+		 */
+		restore_regs(fd, ctx, e, flags, regs[0]);
+
+		igt_spin_batch_free(fd, spin);
+
+		compare_regs(fd, tmpl, regs[1], "nonpriv read/writes");
+
+		for (int n = 0; n < ARRAY_SIZE(regs); n++)
+			gem_close(fd, regs[n]);
+		gem_context_destroy(fd, ctx);
+		gem_close(fd, tmpl);
+	}
+}
+
 static void isolation(int fd,
 		      const struct intel_execution_engine2 *e,
 		      unsigned int flags)
@@ -715,6 +804,9 @@ igt_main
 				igt_fork_hang_detector(fd);
 			}
 
+			igt_subtest_f("%s-nonpriv", e->name)
+				nonpriv(fd, e, 0);
+
 			igt_subtest_f("%s-clean", e->name)
 				isolation(fd, e, 0);
 			igt_subtest_f("%s-dirty-create", e->name)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 2d22c2c1c..87eb8bbb9 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -12,6 +12,11 @@ igt@gem_close_race@basic-threads
 igt@gem_cpu_reloc@basic
 igt@gem_ctx_create@basic
 igt@gem_ctx_create@basic-files
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv
 igt@gem_ctx_exec@basic
 igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
-- 
2.20.1

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

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

* ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (4 preceding siblings ...)
  2019-02-21 23:32 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
@ 2019-02-22  0:09 ` Patchwork
  2019-02-22  0:33 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (13 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22  0:09 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4)
URL   : https://patchwork.freedesktop.org/series/57039/
State : success

== Summary ==

CI Bug Log - changes from IGT_4851 -> IGTPW_2483
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/4/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-hsw-4770:        NOTRUN -> FAIL
    - fi-hsw-peppy:       NOTRUN -> FAIL
    - fi-hsw-4770r:       NOTRUN -> FAIL

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-icl-u2:          NOTRUN -> SKIP +3
    - {fi-icl-y}:         NOTRUN -> SKIP +3

  
New tests
---------

  New tests have been introduced between IGT_4851 and IGTPW_2483:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 23 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.22] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 3 fail(s) 27 pass(s) 7 skip(s)
    - Exec time: [0.0, 0.23] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 23 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.23] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 8 pass(s) 29 skip(s)
    - Exec time: [0.0, 0.08] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 23 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.24] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-byt-n2820:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-bwr-2160:        NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@vcs0-nonpriv} (NEW):
    - fi-gdg-551:         NOTRUN -> SKIP [fdo#109271] +4
    - fi-hsw-4770:        NOTRUN -> SKIP [fdo#109271] +3

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - fi-kbl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-7500u:       NOTRUN -> SKIP [fdo#109271]
    - fi-bsw-kefka:       NOTRUN -> SKIP [fdo#109271]
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109276]
    - fi-cfl-8700k:       NOTRUN -> SKIP [fdo#109271]
    - fi-ivb-3770:        NOTRUN -> SKIP [fdo#109271] +3
    - fi-bsw-n3050:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-bxt-j4205:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-8809g:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-r:           NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-x1275:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-6600u:       NOTRUN -> SKIP [fdo#109271]
    - fi-apl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-blb-e6850:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-skl-6700k2:      NOTRUN -> SKIP [fdo#109271]
    - {fi-icl-y}:         NOTRUN -> SKIP [fdo#109276]
    - fi-whl-u:           NOTRUN -> SKIP [fdo#109271]

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-hsw-peppy:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-ivb-3520m:       NOTRUN -> SKIP [fdo#109271] +3

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-blb-e6850:       PASS -> INCOMPLETE [fdo#107718]

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       PASS -> SKIP [fdo#109271]

  * igt@i915_pm_rpm@basic-rte:
    - fi-bsw-kefka:       PASS -> FAIL [fdo#108800]

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      PASS -> FAIL [fdo#108511]

  * igt@kms_busy@basic-flip-a:
    - fi-kbl-7567u:       PASS -> SKIP [fdo#109271] / [fdo#109278] +2

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
    - fi-apl-guc:         PASS -> DMESG-WARN [fdo#108566]

  
#### Possible fixes ####

  * igt@kms_busy@basic-flip-b:
    - fi-gdg-551:         FAIL [fdo#103182] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109294]: https://bugs.freedesktop.org/show_bug.cgi?id=109294
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109527]: https://bugs.freedesktop.org/show_bug.cgi?id=109527
  [fdo#109528]: https://bugs.freedesktop.org/show_bug.cgi?id=109528
  [fdo#109530]: https://bugs.freedesktop.org/show_bug.cgi?id=109530
  [fdo#109567]: https://bugs.freedesktop.org/show_bug.cgi?id=109567


Participating hosts (43 -> 38)
------------------------------

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


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

    * IGT: IGT_4851 -> IGTPW_2483

  CI_DRM_5650: a4c5c4791699aeebfff694c222c76abb61900fca @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2483: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2483/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv

== Logs ==

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

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

* [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (5 preceding siblings ...)
  2019-02-22  0:09 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4) Patchwork
@ 2019-02-22  0:33 ` Chris Wilson
  2019-02-22  0:55 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5) Patchwork
                   ` (12 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Chris Wilson @ 2019-02-22  0:33 UTC (permalink / raw)
  To: intel-gfx

Verify that our list of nonpriv registers exist and are writable.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_isolation.c        | 254 ++++++++++++++++++--------
 tests/intel-ci/fast-feedback.testlist |   5 +
 2 files changed, 178 insertions(+), 81 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 839d49ade..823d3b011 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -59,96 +59,97 @@ enum {
 
 static const struct named_register {
 	const char *name;
-	unsigned int gen_mask;
-	unsigned int engine_mask;
-	uint32_t offset;
+	unsigned int read_mask; /* on which gen the register exists */
+	unsigned int write_mask; /* but it may only be writable on some gen! */
+	unsigned int engine_mask; /* preferred engine / powerwell */
+	uint32_t offset; /* address of register, from bottom of mmio bar */
 	uint32_t count;
 	uint32_t ignore_bits;
 	bool masked;
 } nonpriv_registers[] = {
-	{ "NOPID", NOCTX, RCS0, 0x2094 },
-	{ "MI_PREDICATE_RESULT_2", NOCTX, RCS0, 0x23bc },
-	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */, true },
-	{ "IA_VERTICES_COUNT", GEN4, RCS0, 0x2310, 2 },
-	{ "IA_PRIMITIVES_COUNT", GEN4, RCS0, 0x2318, 2 },
-	{ "VS_INVOCATION_COUNT", GEN4, RCS0, 0x2320, 2 },
-	{ "HS_INVOCATION_COUNT", GEN4, RCS0, 0x2300, 2 },
-	{ "DS_INVOCATION_COUNT", GEN4, RCS0, 0x2308, 2 },
-	{ "GS_INVOCATION_COUNT", GEN4, RCS0, 0x2328, 2 },
-	{ "GS_PRIMITIVES_COUNT", GEN4, RCS0, 0x2330, 2 },
-	{ "CL_INVOCATION_COUNT", GEN4, RCS0, 0x2338, 2 },
-	{ "CL_PRIMITIVES_COUNT", GEN4, RCS0, 0x2340, 2 },
-	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2 },
-	{ "PS_DEPTH_COUNT_0", GEN4, RCS0, 0x22d8, 2 },
-	{ "GPUGPU_DISPATCHDIMX", GEN8, RCS0, 0x2500 },
-	{ "GPUGPU_DISPATCHDIMY", GEN8, RCS0, 0x2504 },
-	{ "GPUGPU_DISPATCHDIMZ", GEN8, RCS0, 0x2508 },
-	{ "MI_PREDICATE_SRC0", GEN8, RCS0, 0x2400, 2 },
-	{ "MI_PREDICATE_SRC1", GEN8, RCS0, 0x2408, 2 },
-	{ "MI_PREDICATE_DATA", GEN8, RCS0, 0x2410, 2 },
-	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418 },
-	{ "3DPRIM_END_OFFSET", GEN6, RCS0, 0x2420 },
-	{ "3DPRIM_START_VERTEX", GEN6, RCS0, 0x2430 },
-	{ "3DPRIM_VERTEX_COUNT", GEN6, RCS0, 0x2434 },
-	{ "3DPRIM_INSTANCE_COUNT", GEN6, RCS0, 0x2438 },
-	{ "3DPRIM_START_INSTANCE", GEN6, RCS0, 0x243c },
-	{ "3DPRIM_BASE_VERTEX", GEN6, RCS0, 0x2440 },
-	{ "GPGPU_THREADS_DISPATCHED", GEN8, RCS0, 0x2290, 2 },
-	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2 },
-	{ "PS_DEPTH_COUNT_1", GEN8, RCS0, 0x22f8, 2 },
-	{ "BB_OFFSET", GEN8, RCS0, 0x2158, .ignore_bits = 0x4 },
-	{ "MI_PREDICATE_RESULT_1", GEN8, RCS0, 0x241c },
-	{ "CS_GPR", GEN8, RCS0, 0x2600, 32 },
-	{ "OA_CTX_CONTROL", GEN8, RCS0, 0x2360 },
-	{ "OACTXID", GEN8, RCS0, 0x2364 },
-	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2 },
-	{ "PS_DEPTH_COUNT_2", GEN8, RCS0, 0x2450, 2 },
-	{ "Cache_Mode_0", GEN7, RCS0, 0x7000 },
-	{ "Cache_Mode_1", GEN7, RCS0, 0x7004 },
-	{ "GT_MODE", GEN8, RCS0, 0x7008 },
-	{ "L3_Config", GEN7, RCS0, 0x7034 },
-	{ "TD_CTL", GEN8, RCS0, 0xe400 },
-	{ "TD_CTL2", GEN8, RCS0, 0xe404 },
-	{ "SO_NUM_PRIMS_WRITEN0", GEN6, RCS0, 0x5200, 2 },
-	{ "SO_NUM_PRIMS_WRITEN1", GEN6, RCS0, 0x5208, 2 },
-	{ "SO_NUM_PRIMS_WRITEN2", GEN6, RCS0, 0x5210, 2 },
-	{ "SO_NUM_PRIMS_WRITEN3", GEN6, RCS0, 0x5218, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, RCS0, 0x5240, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, RCS0, 0x5248, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, RCS0, 0x5250, 2 },
-	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, RCS0, 0x5258, 2 },
-	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280 },
-	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284 },
-	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288 },
-	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c },
-	{ "OA_CONTROL", NOCTX, RCS0, 0x2b00 },
-	{ "PERF_CNT_1", NOCTX, RCS0, 0x91b8, 2 },
-	{ "PERF_CNT_2", NOCTX, RCS0, 0x91c0, 2 },
+	{ "NOPID", NOCTX, -1, RCS0, 0x2094 },
+	{ "MI_PREDICATE_RESULT_2", NOCTX, -1, RCS0, 0x23bc },
+	{ "INSTPM", GEN6, 0 /* rsvd bits vary by gen */, RCS0, 0x20c0, 1, BIT(8) /* r/o counter */, true },
+	{ "IA_VERTICES_COUNT", GEN4, GEN8, RCS0, 0x2310, 2 },
+	{ "IA_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2318, 2 },
+	{ "VS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2320, 2 },
+	{ "HS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2300, 2 },
+	{ "DS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2308, 2 },
+	{ "GS_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2328, 2 },
+	{ "GS_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2330, 2 },
+	{ "CL_INVOCATION_COUNT", GEN4, GEN8, RCS0, 0x2338, 2 },
+	{ "CL_PRIMITIVES_COUNT", GEN4, GEN8, RCS0, 0x2340, 2 },
+	{ "PS_INVOCATION_COUNT_0", GEN4, GEN8, RCS0, 0x22c8, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_0", GEN4, GEN8, RCS0, 0x22d8, 2 },
+	{ "GPUGPU_DISPATCHDIMX", GEN8, -1, RCS0, 0x2500 },
+	{ "GPUGPU_DISPATCHDIMY", GEN8, -1, RCS0, 0x2504 },
+	{ "GPUGPU_DISPATCHDIMZ", GEN8, -1, RCS0, 0x2508 },
+	{ "MI_PREDICATE_SRC0", GEN8, -1, RCS0, 0x2400, 2 },
+	{ "MI_PREDICATE_SRC1", GEN8, -1, RCS0, 0x2408, 2 },
+	{ "MI_PREDICATE_DATA", GEN8, -1, RCS0, 0x2410, 2 },
+	{ "MI_PRED_RESULT", GEN8, -1, RCS0, 0x2418, .ignore_bits = ~1u },
+	{ "3DPRIM_END_OFFSET", GEN6, GEN8 /* HSW? */, RCS0, 0x2420 },
+	{ "3DPRIM_START_VERTEX", GEN6, GEN8 /* HSW? */, RCS0, 0x2430 },
+	{ "3DPRIM_VERTEX_COUNT", GEN6, GEN8 /* HSW? */, RCS0, 0x2434 },
+	{ "3DPRIM_INSTANCE_COUNT", GEN6, GEN8 /* HSW? */, RCS0, 0x2438 },
+	{ "3DPRIM_START_INSTANCE", GEN6, GEN8 /* HSW? */, RCS0, 0x243c },
+	{ "3DPRIM_BASE_VERTEX", GEN6, GEN8 /* HSW? */, RCS0, 0x2440 },
+	{ "GPGPU_THREADS_DISPATCHED", GEN8, -1, RCS0, 0x2290, 2 },
+	{ "PS_INVOCATION_COUNT_1", GEN8, -1, RCS0, 0x22f0, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_1", GEN8, -1, RCS0, 0x22f8, 2 },
+	{ "BB_OFFSET", GEN8, -1, RCS0, 0x2158, .ignore_bits = 0x4 },
+	{ "MI_PREDICATE_RESULT_1", GEN8, -1, RCS0, 0x241c },
+	{ "CS_GPR", GEN8, -1, RCS0, 0x2600, 32 },
+	{ "OA_CTX_CONTROL", GEN8, -1, RCS0, 0x2360 },
+	{ "OACTXID", GEN8, -1, RCS0, 0x2364 },
+	{ "PS_INVOCATION_COUNT_2", GEN8, -1, RCS0, 0x2448, 2, .ignore_bits = 0x3 },
+	{ "PS_DEPTH_COUNT_2", GEN8, -1, RCS0, 0x2450, 2 },
+	{ "Cache_Mode_0", GEN7, GEN8, RCS0, 0x7000, .masked = true },
+	{ "Cache_Mode_1", GEN7, GEN8, RCS0, 0x7004, .masked = true },
+	{ "GT_MODE", GEN8, -1, RCS0, 0x7008, .masked = true },
+	{ "L3_Config", GEN8, -1, RCS0, 0x7034 },
+	{ "TD_CTL", GEN8, -1, RCS0, 0xe400, .masked = true },
+	{ "TD_CTL2", GEN8, -1, RCS0, 0xe404 },
+	{ "SO_NUM_PRIMS_WRITTEN0", GEN6, GEN8 /* HSW? */, RCS0, 0x5200, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN1", GEN6, GEN8 /* HSW? */, RCS0, 0x5208, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN2", GEN6, GEN8 /* HSW? */, RCS0, 0x5210, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN3", GEN6, GEN8 /* HSW? */, RCS0, 0x5218, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, GEN8 /* HSW? */, RCS0, 0x5240, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, GEN8 /* HSW? */, RCS0, 0x5248, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, GEN8 /* HSW? */, RCS0, 0x5250, 2 },
+	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, GEN8 /* HSW? */, RCS0, 0x5258, 2 },
+	{ "SO_WRITE_OFFSET0", GEN7, GEN8 /* HSW? */, RCS0, 0x5280, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET1", GEN7, GEN8 /* HSW? */, RCS0, 0x5284, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET2", GEN7, GEN8 /* HSW? */, RCS0, 0x5288, .ignore_bits = 0x3 },
+	{ "SO_WRITE_OFFSET3", GEN7, GEN8 /* HSW? */, RCS0, 0x528c, .ignore_bits = 0x3 },
+	{ "OA_CONTROL", NOCTX, -1, RCS0, 0x2b00 },
+	{ "PERF_CNT_1", NOCTX, -1, RCS0, 0x91b8, 2 },
+	{ "PERF_CNT_2", NOCTX, -1, RCS0, 0x91c0, 2 },
 
 	/* Privileged (enabled by w/a + FORCE_TO_NONPRIV) */
-	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, RCS0, 0x2248 },
-	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580 },
-	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304 },
-	{ "L3SQREG1", GEN8, RCS0, 0xb010 },
+	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, -1, RCS0, 0x2248 },
+	{ "CS_CHICKEN1", GEN_RANGE(9, 10), -1, RCS0, 0x2580, .masked = true },
+	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), -1, RCS0, 0x7304, .masked = true },
+	{ "L3SQREG4", GEN9, -1, RCS0, 0xb118, .ignore_bits = 0x1ffff0 },
 
-	{ "BCS_GPR", GEN9, BCS0, 0x22600, 32 },
-	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200 },
+	{ "BCS_GPR", GEN9, -1, BCS0, 0x22600, 32 },
+	{ "BCS_SWCTRL", GEN8, -1, BCS0, 0x22200, .ignore_bits = ~0x3, .masked = true },
 
-	{ "VCS0_GPR", GEN9, VCS0, 0x12600, 32 },
-	{ "MFC_VDBOX1", NOCTX, VCS0, 0x12800, 64 },
+	{ "VCS0_GPR", GEN9, -1, VCS0, 0x12600, 32 },
+	{ "MFC_VDBOX1", NOCTX, -1, VCS0, 0x12800, 64 },
 
-	{ "VCS1_GPR", GEN9, VCS1, 0x1c600, 32 },
-	{ "MFC_VDBOX2", NOCTX, VCS1, 0x1c800, 64 },
+	{ "VCS1_GPR", GEN9, -1, VCS1, 0x1c600, 32 },
+	{ "MFC_VDBOX2", NOCTX, -1, VCS1, 0x1c800, 64 },
 
-	{ "VECS_GPR", GEN9, VECS0, 0x1a600, 32 },
+	{ "VECS_GPR", GEN9, -1, VECS0, 0x1a600, 32 },
 
 	{}
 }, ignore_registers[] = {
-	{ "RCS timestamp", GEN6, ~0u, 0x2358 },
-	{ "VCS0 timestamp", GEN7, ~0u, 0x12358 },
-	{ "VCS1 timestamp", GEN7, ~0u, 0x1c358 },
-	{ "BCS timestamp", GEN7, ~0u, 0x22358 },
-	{ "VECS timestamp", GEN8, ~0u, 0x1a358 },
+	{ "RCS timestamp", GEN6, -1, ~0u, 0x2358 },
+	{ "VCS0 timestamp", GEN7, -1, ~0u, 0x12358 },
+	{ "VCS1 timestamp", GEN7, -1, ~0u, 0x1c358 },
+	{ "BCS timestamp", GEN7, -1, ~0u, 0x22358 },
+	{ "VECS timestamp", GEN8, -1, ~0u, 0x1a358 },
 	{}
 };
 
@@ -191,6 +192,40 @@ static bool ignore_register(uint32_t offset)
 	return false;
 }
 
+static void tmpl_regs(int fd,
+		      uint32_t ctx,
+		      const struct intel_execution_engine2 *e,
+		      uint32_t handle,
+		      uint32_t value)
+{
+	const unsigned int gen_bit = 1 << intel_gen(intel_get_drm_devid(fd));
+	const unsigned int engine_bit = ENGINE(e->class, e->instance);
+	unsigned int regs_size;
+	uint32_t *regs;
+
+	regs_size = NUM_REGS * sizeof(uint32_t);
+	regs_size = PAGE_ALIGN(regs_size);
+
+	regs = gem_mmap__cpu(fd, handle, 0, regs_size, PROT_WRITE);
+	gem_set_domain(fd, handle,
+		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
+
+	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
+		if (!(r->engine_mask & engine_bit))
+			continue;
+		if (!(r->write_mask & r->read_mask & gen_bit))
+			continue;
+		for (unsigned count = r->count ?: 1, offset = r->offset;
+		     count--; offset += 4) {
+			if (r->masked)
+				regs[offset/sizeof(*regs)] = value & 0xffff;
+			else
+				regs[offset/sizeof(*regs)] = value;
+		}
+	}
+	munmap(regs, regs_size);
+}
+
 static uint32_t read_regs(int fd,
 			  uint32_t ctx,
 			  const struct intel_execution_engine2 *e,
@@ -228,7 +263,7 @@ static uint32_t read_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->read_mask & gen_bit))
 			continue;
 
 		for (unsigned count = r->count ?: 1, offset = r->offset;
@@ -290,7 +325,7 @@ static void write_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->write_mask & r->read_mask & gen_bit))
 			continue;
 		for (unsigned count = r->count ?: 1, offset = r->offset;
 		     count--; offset += 4) {
@@ -353,7 +388,7 @@ static void restore_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->write_mask & r->read_mask & gen_bit))
 			continue;
 
 		for (unsigned count = r->count ?: 1, offset = r->offset;
@@ -406,7 +441,7 @@ static void dump_regs(int fd,
 	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
 		if (!(r->engine_mask & engine_bit))
 			continue;
-		if (!(r->gen_mask & gen_bit))
+		if (!(r->read_mask & gen_bit))
 			continue;
 
 		if (r->count <= 1) {
@@ -474,6 +509,60 @@ static void compare_regs(int fd, uint32_t A, uint32_t B, const char *who)
 		     num_errors, who);
 }
 
+static void nonpriv(int fd,
+		    const struct intel_execution_engine2 *e,
+		    unsigned int flags)
+{
+	static const uint32_t values[] = {
+		0x0,
+		0xffffffff,
+		0xcccccccc,
+		0x33333333,
+		0x55555555,
+		0xaaaaaaaa,
+		0xdeadbeef
+	};
+	unsigned int engine =
+		gem_class_instance_to_eb_flags(fd, e->class, e->instance);
+	unsigned int num_values = ARRAY_SIZE(values);
+
+	gem_quiescent_gpu(fd);
+
+	for (int v = 0; v < num_values; v++) {
+		igt_spin_t *spin = NULL;
+		uint32_t ctx, regs[2], tmpl;
+
+		ctx = gem_context_create(fd);
+		tmpl = read_regs(fd, ctx, e, flags);
+		regs[0] = read_regs(fd, ctx, e, flags);
+
+		tmpl_regs(fd, ctx, e, tmpl, values[v]);
+
+		spin = igt_spin_batch_new(fd, .ctx = ctx, .engine = engine);
+
+		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
+			  __func__, v, values[v]);
+		write_regs(fd, ctx, e, flags, values[v]);
+
+		regs[1] = read_regs(fd, ctx, e, flags);
+
+		/*
+		 * Restore the original register values before the HW idles.
+		 * Or else it may never restart!
+		 */
+		restore_regs(fd, ctx, e, flags, regs[0]);
+
+		igt_spin_batch_free(fd, spin);
+
+		compare_regs(fd, tmpl, regs[1], "nonpriv read/writes");
+
+		for (int n = 0; n < ARRAY_SIZE(regs); n++)
+			gem_close(fd, regs[n]);
+		gem_context_destroy(fd, ctx);
+		gem_close(fd, tmpl);
+	}
+}
+
 static void isolation(int fd,
 		      const struct intel_execution_engine2 *e,
 		      unsigned int flags)
@@ -715,6 +804,9 @@ igt_main
 				igt_fork_hang_detector(fd);
 			}
 
+			igt_subtest_f("%s-nonpriv", e->name)
+				nonpriv(fd, e, 0);
+
 			igt_subtest_f("%s-clean", e->name)
 				isolation(fd, e, 0);
 			igt_subtest_f("%s-dirty-create", e->name)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 2d22c2c1c..87eb8bbb9 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -12,6 +12,11 @@ igt@gem_close_race@basic-threads
 igt@gem_cpu_reloc@basic
 igt@gem_ctx_create@basic
 igt@gem_ctx_create@basic-files
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv
 igt@gem_ctx_exec@basic
 igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
-- 
2.20.1

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

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

* ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (6 preceding siblings ...)
  2019-02-22  0:33 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
@ 2019-02-22  0:55 ` Patchwork
  2019-02-22  7:55 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Patchwork
                   ` (11 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22  0:55 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5)
URL   : https://patchwork.freedesktop.org/series/57039/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5651 -> IGTPW_2484
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/5/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-icl-u2:          NOTRUN -> SKIP +3
    - {fi-icl-y}:         NOTRUN -> SKIP +3

  
New tests
---------

  New tests have been introduced between CI_DRM_5651 and IGTPW_2484:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 23 pass(s) 15 skip(s)
    - Exec time: [0.0, 0.25] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 30 pass(s) 8 skip(s)
    - Exec time: [0.0, 0.25] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 23 pass(s) 15 skip(s)
    - Exec time: [0.0, 0.23] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 8 pass(s) 30 skip(s)
    - Exec time: [0.0, 0.07] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 23 pass(s) 15 skip(s)
    - Exec time: [0.0, 0.23] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-byt-n2820:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-bwr-2160:        NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@vcs0-nonpriv} (NEW):
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] +4
    - fi-gdg-551:         NOTRUN -> SKIP [fdo#109271] +4
    - fi-hsw-4770:        NOTRUN -> SKIP [fdo#109271] +3

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - fi-kbl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-7500u:       NOTRUN -> SKIP [fdo#109271]
    - fi-bsw-kefka:       NOTRUN -> SKIP [fdo#109271]
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109276]
    - fi-cfl-8700k:       NOTRUN -> SKIP [fdo#109271]
    - fi-ivb-3770:        NOTRUN -> SKIP [fdo#109271] +3
    - fi-bsw-n3050:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-bxt-j4205:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-8809g:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-r:           NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-x1275:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-6600u:       NOTRUN -> SKIP [fdo#109271]
    - fi-apl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-blb-e6850:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-skl-6700k2:      NOTRUN -> SKIP [fdo#109271]
    - {fi-icl-y}:         NOTRUN -> SKIP [fdo#109276]
    - fi-whl-u:           NOTRUN -> SKIP [fdo#109271]

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-hsw-peppy:       NOTRUN -> SKIP [fdo#109271] +3
    - fi-ivb-3520m:       NOTRUN -> SKIP [fdo#109271] +3

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-hsw-4770:        PASS -> SKIP [fdo#109271] +4

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@basic-wc:
    - {fi-icl-y}:         INCOMPLETE -> PASS

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       SKIP [fdo#109271] -> PASS

  * igt@i915_pm_rpm@basic-rte:
    - fi-bsw-kefka:       FAIL [fdo#108800] -> PASS

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

  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109294]: https://bugs.freedesktop.org/show_bug.cgi?id=109294
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109527]: https://bugs.freedesktop.org/show_bug.cgi?id=109527
  [fdo#109528]: https://bugs.freedesktop.org/show_bug.cgi?id=109528


Participating hosts (45 -> 39)
------------------------------

  Missing    (6): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-bdw-samus 


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

    * IGT: IGT_4851 -> IGTPW_2484

  CI_DRM_5651: 434503f9826f553df36a0495383b32eaa949a0aa @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2484: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2484/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv

== Logs ==

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

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

* ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (7 preceding siblings ...)
  2019-02-22  0:55 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5) Patchwork
@ 2019-02-22  7:55 ` Patchwork
  2019-02-22 10:37 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2) Patchwork
                   ` (10 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22  7:55 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
URL   : https://patchwork.freedesktop.org/series/57039/
State : failure

== Summary ==

CI Bug Log - changes from IGT_4850_full -> IGTPW_2474_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2474_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2474_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-glk:          PASS -> FAIL +2

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - shard-hsw:          NOTRUN -> FAIL

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          PASS -> FAIL
    - shard-apl:          PASS -> FAIL +1

  
New tests
---------

  New tests have been introduced between IGT_4850_full and IGTPW_2474_full:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 1 fail(s) 3 pass(s)
    - Exec time: [0.04, 0.15] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.04] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.12] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-apl:          PASS -> FAIL [fdo#109472]

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +12

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          PASS -> DMESG-WARN [fdo#108566]

  * igt@kms_atomic_transition@1x-modeset-transitions-nonblocking:
    - shard-apl:          PASS -> FAIL [fdo#109660]

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-e:
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-apl:          PASS -> FAIL [fdo#106510] / [fdo#108145] +1

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
    - shard-kbl:          PASS -> FAIL [fdo#107725] / [fdo#108145]

  * igt@kms_color@pipe-a-degamma:
    - shard-apl:          PASS -> FAIL [fdo#104782] / [fdo#108145]

  * igt@kms_color@pipe-b-legacy-gamma:
    - shard-glk:          PASS -> FAIL [fdo#104782]

  * igt@kms_color@pipe-c-ctm-max:
    - shard-kbl:          PASS -> FAIL [fdo#108147]

  * igt@kms_cursor_crc@cursor-128x128-suspend:
    - shard-apl:          PASS -> FAIL [fdo#103191] / [fdo#103232]

  * igt@kms_cursor_crc@cursor-128x42-sliding:
    - shard-kbl:          PASS -> FAIL [fdo#103232] +2

  * igt@kms_cursor_crc@cursor-256x256-suspend:
    - shard-kbl:          PASS -> INCOMPLETE [fdo#103665]

  * igt@kms_cursor_crc@cursor-64x21-random:
    - shard-apl:          PASS -> FAIL [fdo#103232] +6

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-glk:          PASS -> FAIL [fdo#109350]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
    - shard-glk:          PASS -> FAIL [fdo#103167] +7

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite:
    - shard-apl:          PASS -> FAIL [fdo#103167] +1

  * igt@kms_plane@pixel-format-pipe-c-planes-source-clamping:
    - shard-glk:          PASS -> FAIL [fdo#108948] +1

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
    - shard-glk:          PASS -> FAIL [fdo#103166] +6

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
    - shard-kbl:          PASS -> FAIL [fdo#103166]
    - shard-apl:          PASS -> FAIL [fdo#103166] +1

  * igt@kms_psr@primary_page_flip:
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] +15

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-kbl:          PASS -> DMESG-FAIL [fdo#105763]

  * igt@kms_vblank@pipe-a-ts-continuation-modeset-hang:
    - shard-kbl:          PASS -> FAIL [fdo#104894]

  * igt@kms_vblank@pipe-a-ts-continuation-modeset-rpm:
    - shard-apl:          PASS -> FAIL [fdo#104894] +1

  * igt@perf_pmu@most-busy-idle-check-all-vcs1:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +17

  
#### Possible fixes ####

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-kbl:          SKIP [fdo#109271] -> PASS

  * igt@kms_atomic_transition@1x-modeset-transitions-nonblocking-fencing:
    - shard-apl:          FAIL [fdo#109660] -> PASS
    - shard-kbl:          FAIL [fdo#109660] -> PASS

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-kbl:          FAIL [fdo#107725] / [fdo#108145] -> PASS

  * igt@kms_cursor_crc@cursor-128x42-random:
    - shard-kbl:          FAIL [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS +5

  * igt@kms_cursor_crc@cursor-256x256-suspend:
    - shard-hsw:          INCOMPLETE [fdo#103540] -> PASS

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-glk:          FAIL [fdo#103232] -> PASS

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-hsw:          FAIL [fdo#105767] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-apl:          FAIL [fdo#103167] -> PASS +3
    - shard-kbl:          FAIL [fdo#103167] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move:
    - shard-glk:          FAIL [fdo#103167] -> PASS +5

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-apl:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane@pixel-format-pipe-c-planes:
    - shard-apl:          FAIL [fdo#103166] -> PASS +3

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
    - shard-glk:          FAIL [fdo#103166] -> PASS

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-kbl:          FAIL [fdo#109016] -> PASS

  * igt@kms_setmode@basic:
    - shard-hsw:          FAIL [fdo#99912] -> PASS

  * igt@kms_universal_plane@universal-plane-pipe-c-functional:
    - shard-kbl:          FAIL [fdo#103166] -> PASS +1

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [fdo#106510]: https://bugs.freedesktop.org/show_bug.cgi?id=106510
  [fdo#107725]: https://bugs.freedesktop.org/show_bug.cgi?id=107725
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109016]: https://bugs.freedesktop.org/show_bug.cgi?id=109016
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#109472]: https://bugs.freedesktop.org/show_bug.cgi?id=109472
  [fdo#109660]: https://bugs.freedesktop.org/show_bug.cgi?id=109660
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (6 -> 4)
------------------------------

  Missing    (2): shard-skl shard-iclb 


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

    * IGT: IGT_4850 -> IGTPW_2474

  CI_DRM_5650: a4c5c4791699aeebfff694c222c76abb61900fca @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2474: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2474/
  IGT_4850: 8ca0b308acdcf53fac3cf2ea3861f5f911b16986 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (8 preceding siblings ...)
  2019-02-22  7:55 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Patchwork
@ 2019-02-22 10:37 ` Patchwork
  2019-02-22 11:18 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (9 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22 10:37 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2)
URL   : https://patchwork.freedesktop.org/series/57039/
State : failure

== Summary ==

CI Bug Log - changes from IGT_4851_full -> IGTPW_2477_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2477_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2477_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-glk:          PASS -> FAIL +1

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - shard-hsw:          NOTRUN -> FAIL

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          PASS -> FAIL
    - shard-apl:          PASS -> FAIL +1

  
New tests
---------

  New tests have been introduced between IGT_4851_full and IGTPW_2477_full:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 1 fail(s) 3 pass(s)
    - Exec time: [0.04, 0.12] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.04] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 3 pass(s)
    - Exec time: [0.04, 0.12] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-apl:          PASS -> FAIL [fdo#109472]
    - shard-kbl:          PASS -> FAIL [fdo#109472]

  * {igt@gem_ctx_isolation@vcs0-nonpriv} (NEW):
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] +2

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-kbl:          NOTRUN -> SKIP [fdo#109271] +5

  * igt@gem_exec_store@basic-bsd2:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +36

  * igt@gem_userptr_blits@process-exit-gtt:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +24

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-apl:          PASS -> INCOMPLETE [fdo#103927]

  * igt@kms_busy@extended-pageflip-hang-newfb-render-e:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +1
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +1

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-glk:          PASS -> FAIL [fdo#108145]

  * igt@kms_color@pipe-a-legacy-gamma:
    - shard-kbl:          PASS -> FAIL [fdo#104782] / [fdo#108145]
    - shard-apl:          PASS -> FAIL [fdo#104782] / [fdo#108145]

  * igt@kms_cursor_crc@cursor-128x128-suspend:
    - shard-apl:          PASS -> FAIL [fdo#103191] / [fdo#103232] +2

  * igt@kms_cursor_crc@cursor-128x42-random:
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-256x256-dpms:
    - shard-apl:          PASS -> FAIL [fdo#103232] +3

  * igt@kms_flip@flip-vs-wf_vblank-interruptible:
    - shard-kbl:          PASS -> DMESG-WARN [fdo#103558] / [fdo#105602] +7

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-kbl:          PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite:
    - shard-apl:          PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-glk:          PASS -> FAIL [fdo#103167] +6

  * igt@kms_plane@pixel-format-pipe-c-planes-source-clamping:
    - shard-glk:          PASS -> FAIL [fdo#108948]

  * igt@kms_plane@plane-position-covered-pipe-b-planes:
    - shard-glk:          PASS -> FAIL [fdo#103166] +6

  * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
    - shard-apl:          PASS -> FAIL [fdo#108145]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
    - shard-apl:          PASS -> FAIL [fdo#103166] +3

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
    - shard-kbl:          PASS -> FAIL [fdo#103166] +3

  * igt@kms_setmode@basic:
    - shard-apl:          PASS -> FAIL [fdo#99912]

  * igt@kms_vblank@pipe-b-ts-continuation-modeset-rpm:
    - shard-apl:          PASS -> FAIL [fdo#104894] +3

  * igt@prime_vgem@basic-fence-flip:
    - shard-apl:          PASS -> FAIL [fdo#104008]

  
#### Possible fixes ####

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
    - shard-kbl:          DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_color@pipe-a-degamma:
    - shard-kbl:          FAIL [fdo#104782] / [fdo#108145] -> PASS

  * igt@kms_color@pipe-a-gamma:
    - shard-kbl:          FAIL [fdo#104782] -> PASS

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-kbl:          FAIL [fdo#103232] -> PASS +1

  * igt@kms_cursor_crc@cursor-64x21-sliding:
    - shard-apl:          FAIL [fdo#103232] -> PASS +4

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-glk:          FAIL [fdo#109350] -> PASS

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-glk:          FAIL [fdo#103232] -> PASS

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-glk:          FAIL [fdo#105363] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-glk:          FAIL [fdo#103167] -> PASS +4

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
    - shard-kbl:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-apl:          FAIL [fdo#103167] -> PASS +3

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-glk:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-glk:          FAIL [fdo#103166] -> PASS +1

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
    - shard-apl:          FAIL [fdo#103166] -> PASS +1

  * igt@testdisplay:
    - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS

  
#### Warnings ####

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-apl:          INCOMPLETE [fdo#103927] -> SKIP [fdo#109271]

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#109472]: https://bugs.freedesktop.org/show_bug.cgi?id=109472
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 4)
------------------------------

  Missing    (3): shard-snb shard-skl shard-iclb 


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

    * IGT: IGT_4851 -> IGTPW_2477

  CI_DRM_5650: a4c5c4791699aeebfff694c222c76abb61900fca @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2477: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2477/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (9 preceding siblings ...)
  2019-02-22 10:37 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2) Patchwork
@ 2019-02-22 11:18 ` Chris Wilson
  2019-02-22 11:24 ` Chris Wilson
                   ` (8 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Chris Wilson @ 2019-02-22 11:18 UTC (permalink / raw)
  To: intel-gfx

Verify that our list of nonpriv registers exist and are writable.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_isolation.c        | 146 +++++++++++++++++++++-----
 tests/intel-ci/fast-feedback.testlist |   5 +
 2 files changed, 126 insertions(+), 25 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 839d49ade..f92db794c 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -59,16 +59,17 @@ enum {
 
 static const struct named_register {
 	const char *name;
-	unsigned int gen_mask;
-	unsigned int engine_mask;
-	uint32_t offset;
+	unsigned int gen_mask; /* on which gen the register exists */
+	unsigned int engine_mask; /* preferred engine / powerwell */
+	uint32_t offset; /* address of register, from bottom of mmio bar */
 	uint32_t count;
 	uint32_t ignore_bits;
+	uint32_t write_mask; /* some registers bits do not exist */
 	bool masked;
 } nonpriv_registers[] = {
 	{ "NOPID", NOCTX, RCS0, 0x2094 },
 	{ "MI_PREDICATE_RESULT_2", NOCTX, RCS0, 0x23bc },
-	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */, true },
+	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* r/o counter */, true, .write_mask = BIT(8) /* vary between gen */ },
 	{ "IA_VERTICES_COUNT", GEN4, RCS0, 0x2310, 2 },
 	{ "IA_PRIMITIVES_COUNT", GEN4, RCS0, 0x2318, 2 },
 	{ "VS_INVOCATION_COUNT", GEN4, RCS0, 0x2320, 2 },
@@ -78,7 +79,7 @@ static const struct named_register {
 	{ "GS_PRIMITIVES_COUNT", GEN4, RCS0, 0x2330, 2 },
 	{ "CL_INVOCATION_COUNT", GEN4, RCS0, 0x2338, 2 },
 	{ "CL_PRIMITIVES_COUNT", GEN4, RCS0, 0x2340, 2 },
-	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2 },
+	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_0", GEN4, RCS0, 0x22d8, 2 },
 	{ "GPUGPU_DISPATCHDIMX", GEN8, RCS0, 0x2500 },
 	{ "GPUGPU_DISPATCHDIMY", GEN8, RCS0, 0x2504 },
@@ -86,7 +87,7 @@ static const struct named_register {
 	{ "MI_PREDICATE_SRC0", GEN8, RCS0, 0x2400, 2 },
 	{ "MI_PREDICATE_SRC1", GEN8, RCS0, 0x2408, 2 },
 	{ "MI_PREDICATE_DATA", GEN8, RCS0, 0x2410, 2 },
-	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418 },
+	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418, .write_mask = 0x1 },
 	{ "3DPRIM_END_OFFSET", GEN6, RCS0, 0x2420 },
 	{ "3DPRIM_START_VERTEX", GEN6, RCS0, 0x2430 },
 	{ "3DPRIM_VERTEX_COUNT", GEN6, RCS0, 0x2434 },
@@ -94,45 +95,45 @@ static const struct named_register {
 	{ "3DPRIM_START_INSTANCE", GEN6, RCS0, 0x243c },
 	{ "3DPRIM_BASE_VERTEX", GEN6, RCS0, 0x2440 },
 	{ "GPGPU_THREADS_DISPATCHED", GEN8, RCS0, 0x2290, 2 },
-	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2 },
+	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_1", GEN8, RCS0, 0x22f8, 2 },
 	{ "BB_OFFSET", GEN8, RCS0, 0x2158, .ignore_bits = 0x4 },
 	{ "MI_PREDICATE_RESULT_1", GEN8, RCS0, 0x241c },
 	{ "CS_GPR", GEN8, RCS0, 0x2600, 32 },
 	{ "OA_CTX_CONTROL", GEN8, RCS0, 0x2360 },
 	{ "OACTXID", GEN8, RCS0, 0x2364 },
-	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2 },
+	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_2", GEN8, RCS0, 0x2450, 2 },
-	{ "Cache_Mode_0", GEN7, RCS0, 0x7000 },
-	{ "Cache_Mode_1", GEN7, RCS0, 0x7004 },
-	{ "GT_MODE", GEN8, RCS0, 0x7008 },
-	{ "L3_Config", GEN7, RCS0, 0x7034 },
-	{ "TD_CTL", GEN8, RCS0, 0xe400 },
+	{ "Cache_Mode_0", GEN7, RCS0, 0x7000, .masked = true },
+	{ "Cache_Mode_1", GEN7, RCS0, 0x7004, .masked = true },
+	{ "GT_MODE", GEN8, RCS0, 0x7008, .masked = true },
+	{ "L3_Config", GEN8, RCS0, 0x7034 },
+	{ "TD_CTL", GEN8, RCS0, 0xe400, .masked = true },
 	{ "TD_CTL2", GEN8, RCS0, 0xe404 },
-	{ "SO_NUM_PRIMS_WRITEN0", GEN6, RCS0, 0x5200, 2 },
-	{ "SO_NUM_PRIMS_WRITEN1", GEN6, RCS0, 0x5208, 2 },
-	{ "SO_NUM_PRIMS_WRITEN2", GEN6, RCS0, 0x5210, 2 },
-	{ "SO_NUM_PRIMS_WRITEN3", GEN6, RCS0, 0x5218, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN0", GEN6, RCS0, 0x5200, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN1", GEN6, RCS0, 0x5208, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN2", GEN6, RCS0, 0x5210, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN3", GEN6, RCS0, 0x5218, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, RCS0, 0x5240, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, RCS0, 0x5248, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, RCS0, 0x5250, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, RCS0, 0x5258, 2 },
-	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280 },
-	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284 },
-	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288 },
-	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c },
+	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c, .write_mask = ~0x3 },
 	{ "OA_CONTROL", NOCTX, RCS0, 0x2b00 },
 	{ "PERF_CNT_1", NOCTX, RCS0, 0x91b8, 2 },
 	{ "PERF_CNT_2", NOCTX, RCS0, 0x91c0, 2 },
 
 	/* Privileged (enabled by w/a + FORCE_TO_NONPRIV) */
 	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, RCS0, 0x2248 },
-	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580 },
-	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304 },
-	{ "L3SQREG1", GEN8, RCS0, 0xb010 },
+	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580, .masked = true },
+	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304, .masked = true },
+	{ "L3SQREG4", GEN9, RCS0, 0xb118, .write_mask = ~0x1ffff0 },
 
 	{ "BCS_GPR", GEN9, BCS0, 0x22600, 32 },
-	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200 },
+	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200, .write_mask = 0x3, .masked = true },
 
 	{ "VCS0_GPR", GEN9, VCS0, 0x12600, 32 },
 	{ "MFC_VDBOX1", NOCTX, VCS0, 0x12800, 64 },
@@ -191,6 +192,41 @@ static bool ignore_register(uint32_t offset)
 	return false;
 }
 
+static void tmpl_regs(int fd,
+		      uint32_t ctx,
+		      const struct intel_execution_engine2 *e,
+		      uint32_t handle,
+		      uint32_t value)
+{
+	const unsigned int gen_bit = 1 << intel_gen(intel_get_drm_devid(fd));
+	const unsigned int engine_bit = ENGINE(e->class, e->instance);
+	unsigned int regs_size;
+	uint32_t *regs;
+
+	regs_size = NUM_REGS * sizeof(uint32_t);
+	regs_size = PAGE_ALIGN(regs_size);
+
+	regs = gem_mmap__cpu(fd, handle, 0, regs_size, PROT_WRITE);
+	gem_set_domain(fd, handle,
+		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
+
+	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
+		if (!(r->engine_mask & engine_bit))
+			continue;
+		if (!(r->gen_mask & gen_bit))
+			continue;
+		for (unsigned count = r->count ?: 1, offset = r->offset;
+		     count--; offset += 4) {
+			uint32_t x = value & (r->write_mask ?: ~0u);
+			if (r->masked)
+				regs[offset/sizeof(*regs)] = x & 0xffff;
+			else
+				regs[offset/sizeof(*regs)] = x;
+		}
+	}
+	munmap(regs, regs_size);
+}
+
 static uint32_t read_regs(int fd,
 			  uint32_t ctx,
 			  const struct intel_execution_engine2 *e,
@@ -474,6 +510,63 @@ static void compare_regs(int fd, uint32_t A, uint32_t B, const char *who)
 		     num_errors, who);
 }
 
+static void nonpriv(int fd,
+		    const struct intel_execution_engine2 *e,
+		    unsigned int flags)
+{
+	static const uint32_t values[] = {
+		0x0,
+		0xffffffff,
+		0xcccccccc,
+		0x33333333,
+		0x55555555,
+		0xaaaaaaaa,
+		0xdeadbeef
+	};
+	unsigned int engine =
+		gem_class_instance_to_eb_flags(fd, e->class, e->instance);
+	unsigned int num_values = ARRAY_SIZE(values);
+
+	/* Sigh -- we need cmdparser access to our own registers! */
+	igt_skip_on(intel_gen(intel_get_drm_devid(fd)) < 8);
+
+	gem_quiescent_gpu(fd);
+
+	for (int v = 0; v < num_values; v++) {
+		igt_spin_t *spin = NULL;
+		uint32_t ctx, regs[2], tmpl;
+
+		ctx = gem_context_create(fd);
+		tmpl = read_regs(fd, ctx, e, flags);
+		regs[0] = read_regs(fd, ctx, e, flags);
+
+		tmpl_regs(fd, ctx, e, tmpl, values[v]);
+
+		spin = igt_spin_batch_new(fd, .ctx = ctx, .engine = engine);
+
+		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
+			  __func__, v, values[v]);
+		write_regs(fd, ctx, e, flags, values[v]);
+
+		regs[1] = read_regs(fd, ctx, e, flags);
+
+		/*
+		 * Restore the original register values before the HW idles.
+		 * Or else it may never restart!
+		 */
+		restore_regs(fd, ctx, e, flags, regs[0]);
+
+		igt_spin_batch_free(fd, spin);
+
+		compare_regs(fd, tmpl, regs[1], "nonpriv read/writes");
+
+		for (int n = 0; n < ARRAY_SIZE(regs); n++)
+			gem_close(fd, regs[n]);
+		gem_context_destroy(fd, ctx);
+		gem_close(fd, tmpl);
+	}
+}
+
 static void isolation(int fd,
 		      const struct intel_execution_engine2 *e,
 		      unsigned int flags)
@@ -715,6 +808,9 @@ igt_main
 				igt_fork_hang_detector(fd);
 			}
 
+			igt_subtest_f("%s-nonpriv", e->name)
+				nonpriv(fd, e, 0);
+
 			igt_subtest_f("%s-clean", e->name)
 				isolation(fd, e, 0);
 			igt_subtest_f("%s-dirty-create", e->name)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 2d22c2c1c..87eb8bbb9 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -12,6 +12,11 @@ igt@gem_close_race@basic-threads
 igt@gem_cpu_reloc@basic
 igt@gem_ctx_create@basic
 igt@gem_ctx_create@basic-files
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv
 igt@gem_ctx_exec@basic
 igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
-- 
2.20.1

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

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

* [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (10 preceding siblings ...)
  2019-02-22 11:18 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
@ 2019-02-22 11:24 ` Chris Wilson
  2019-02-22 11:50 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7) Patchwork
                   ` (7 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Chris Wilson @ 2019-02-22 11:24 UTC (permalink / raw)
  To: intel-gfx

Verify that our list of nonpriv registers exist and are writable.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_isolation.c        | 151 +++++++++++++++++++++-----
 tests/intel-ci/fast-feedback.testlist |   5 +
 2 files changed, 131 insertions(+), 25 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 839d49ade..7599635b9 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -59,16 +59,23 @@ enum {
 
 static const struct named_register {
 	const char *name;
-	unsigned int gen_mask;
-	unsigned int engine_mask;
-	uint32_t offset;
+	unsigned int gen_mask; /* on which gen the register exists */
+	unsigned int engine_mask; /* preferred engine / powerwell */
+	uint32_t offset; /* address of register, from bottom of mmio bar */
 	uint32_t count;
 	uint32_t ignore_bits;
+	uint32_t write_mask; /* some registers bits do not exist */
 	bool masked;
 } nonpriv_registers[] = {
 	{ "NOPID", NOCTX, RCS0, 0x2094 },
 	{ "MI_PREDICATE_RESULT_2", NOCTX, RCS0, 0x23bc },
-	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */, true },
+	{
+		"INSTPM",
+		GEN6, RCS0, 0x20c0,
+		.ignore_bits = BIT(8) /* ro counter */,
+		.write_mask = BIT(8) /* rsvd varies between gen */,
+		.masked = true,
+	},
 	{ "IA_VERTICES_COUNT", GEN4, RCS0, 0x2310, 2 },
 	{ "IA_PRIMITIVES_COUNT", GEN4, RCS0, 0x2318, 2 },
 	{ "VS_INVOCATION_COUNT", GEN4, RCS0, 0x2320, 2 },
@@ -78,7 +85,7 @@ static const struct named_register {
 	{ "GS_PRIMITIVES_COUNT", GEN4, RCS0, 0x2330, 2 },
 	{ "CL_INVOCATION_COUNT", GEN4, RCS0, 0x2338, 2 },
 	{ "CL_PRIMITIVES_COUNT", GEN4, RCS0, 0x2340, 2 },
-	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2 },
+	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_0", GEN4, RCS0, 0x22d8, 2 },
 	{ "GPUGPU_DISPATCHDIMX", GEN8, RCS0, 0x2500 },
 	{ "GPUGPU_DISPATCHDIMY", GEN8, RCS0, 0x2504 },
@@ -86,7 +93,7 @@ static const struct named_register {
 	{ "MI_PREDICATE_SRC0", GEN8, RCS0, 0x2400, 2 },
 	{ "MI_PREDICATE_SRC1", GEN8, RCS0, 0x2408, 2 },
 	{ "MI_PREDICATE_DATA", GEN8, RCS0, 0x2410, 2 },
-	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418 },
+	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418, .write_mask = 0x1 },
 	{ "3DPRIM_END_OFFSET", GEN6, RCS0, 0x2420 },
 	{ "3DPRIM_START_VERTEX", GEN6, RCS0, 0x2430 },
 	{ "3DPRIM_VERTEX_COUNT", GEN6, RCS0, 0x2434 },
@@ -94,45 +101,45 @@ static const struct named_register {
 	{ "3DPRIM_START_INSTANCE", GEN6, RCS0, 0x243c },
 	{ "3DPRIM_BASE_VERTEX", GEN6, RCS0, 0x2440 },
 	{ "GPGPU_THREADS_DISPATCHED", GEN8, RCS0, 0x2290, 2 },
-	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2 },
+	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_1", GEN8, RCS0, 0x22f8, 2 },
 	{ "BB_OFFSET", GEN8, RCS0, 0x2158, .ignore_bits = 0x4 },
 	{ "MI_PREDICATE_RESULT_1", GEN8, RCS0, 0x241c },
 	{ "CS_GPR", GEN8, RCS0, 0x2600, 32 },
 	{ "OA_CTX_CONTROL", GEN8, RCS0, 0x2360 },
 	{ "OACTXID", GEN8, RCS0, 0x2364 },
-	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2 },
+	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_2", GEN8, RCS0, 0x2450, 2 },
-	{ "Cache_Mode_0", GEN7, RCS0, 0x7000 },
-	{ "Cache_Mode_1", GEN7, RCS0, 0x7004 },
-	{ "GT_MODE", GEN8, RCS0, 0x7008 },
-	{ "L3_Config", GEN7, RCS0, 0x7034 },
-	{ "TD_CTL", GEN8, RCS0, 0xe400 },
+	{ "Cache_Mode_0", GEN7, RCS0, 0x7000, .masked = true },
+	{ "Cache_Mode_1", GEN7, RCS0, 0x7004, .masked = true },
+	{ "GT_MODE", GEN8, RCS0, 0x7008, .masked = true },
+	{ "L3_Config", GEN8, RCS0, 0x7034 },
+	{ "TD_CTL", GEN8, RCS0, 0xe400, .masked = true },
 	{ "TD_CTL2", GEN8, RCS0, 0xe404 },
-	{ "SO_NUM_PRIMS_WRITEN0", GEN6, RCS0, 0x5200, 2 },
-	{ "SO_NUM_PRIMS_WRITEN1", GEN6, RCS0, 0x5208, 2 },
-	{ "SO_NUM_PRIMS_WRITEN2", GEN6, RCS0, 0x5210, 2 },
-	{ "SO_NUM_PRIMS_WRITEN3", GEN6, RCS0, 0x5218, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN0", GEN6, RCS0, 0x5200, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN1", GEN6, RCS0, 0x5208, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN2", GEN6, RCS0, 0x5210, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN3", GEN6, RCS0, 0x5218, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, RCS0, 0x5240, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, RCS0, 0x5248, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, RCS0, 0x5250, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, RCS0, 0x5258, 2 },
-	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280 },
-	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284 },
-	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288 },
-	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c },
+	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c, .write_mask = ~0x3 },
 	{ "OA_CONTROL", NOCTX, RCS0, 0x2b00 },
 	{ "PERF_CNT_1", NOCTX, RCS0, 0x91b8, 2 },
 	{ "PERF_CNT_2", NOCTX, RCS0, 0x91c0, 2 },
 
 	/* Privileged (enabled by w/a + FORCE_TO_NONPRIV) */
 	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, RCS0, 0x2248 },
-	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580 },
-	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304 },
-	{ "L3SQREG1", GEN8, RCS0, 0xb010 },
+	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580, .masked = true },
+	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304, .masked = true },
+	{ "L3SQREG4", GEN9, RCS0, 0xb118, .write_mask = ~0x1ffff0 },
 
 	{ "BCS_GPR", GEN9, BCS0, 0x22600, 32 },
-	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200 },
+	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200, .write_mask = 0x3, .masked = true },
 
 	{ "VCS0_GPR", GEN9, VCS0, 0x12600, 32 },
 	{ "MFC_VDBOX1", NOCTX, VCS0, 0x12800, 64 },
@@ -191,6 +198,40 @@ static bool ignore_register(uint32_t offset)
 	return false;
 }
 
+static void tmpl_regs(int fd,
+		      uint32_t ctx,
+		      const struct intel_execution_engine2 *e,
+		      uint32_t handle,
+		      uint32_t value)
+{
+	const unsigned int gen_bit = 1 << intel_gen(intel_get_drm_devid(fd));
+	const unsigned int engine_bit = ENGINE(e->class, e->instance);
+	unsigned int regs_size;
+	uint32_t *regs;
+
+	regs_size = NUM_REGS * sizeof(uint32_t);
+	regs_size = PAGE_ALIGN(regs_size);
+
+	regs = gem_mmap__cpu(fd, handle, 0, regs_size, PROT_WRITE);
+	gem_set_domain(fd, handle,
+		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
+
+	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
+		if (!(r->engine_mask & engine_bit))
+			continue;
+		if (!(r->gen_mask & gen_bit))
+			continue;
+		for (unsigned count = r->count ?: 1, offset = r->offset;
+		     count--; offset += 4) {
+			uint32_t x = value & (r->write_mask ?: ~0u);
+			if (r->masked)
+				x &= 0xffff;
+			regs[offset/sizeof(*regs)] = x;
+		}
+	}
+	munmap(regs, regs_size);
+}
+
 static uint32_t read_regs(int fd,
 			  uint32_t ctx,
 			  const struct intel_execution_engine2 *e,
@@ -474,6 +515,63 @@ static void compare_regs(int fd, uint32_t A, uint32_t B, const char *who)
 		     num_errors, who);
 }
 
+static void nonpriv(int fd,
+		    const struct intel_execution_engine2 *e,
+		    unsigned int flags)
+{
+	static const uint32_t values[] = {
+		0x0,
+		0xffffffff,
+		0xcccccccc,
+		0x33333333,
+		0x55555555,
+		0xaaaaaaaa,
+		0xdeadbeef
+	};
+	unsigned int engine =
+		gem_class_instance_to_eb_flags(fd, e->class, e->instance);
+	unsigned int num_values = ARRAY_SIZE(values);
+
+	/* Sigh -- we need cmdparser access to our own registers! */
+	igt_skip_on(intel_gen(intel_get_drm_devid(fd)) < 8);
+
+	gem_quiescent_gpu(fd);
+
+	for (int v = 0; v < num_values; v++) {
+		igt_spin_t *spin = NULL;
+		uint32_t ctx, regs[2], tmpl;
+
+		ctx = gem_context_create(fd);
+		tmpl = read_regs(fd, ctx, e, flags);
+		regs[0] = read_regs(fd, ctx, e, flags);
+
+		tmpl_regs(fd, ctx, e, tmpl, values[v]);
+
+		spin = igt_spin_batch_new(fd, .ctx = ctx, .engine = engine);
+
+		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
+			  __func__, v, values[v]);
+		write_regs(fd, ctx, e, flags, values[v]);
+
+		regs[1] = read_regs(fd, ctx, e, flags);
+
+		/*
+		 * Restore the original register values before the HW idles.
+		 * Or else it may never restart!
+		 */
+		restore_regs(fd, ctx, e, flags, regs[0]);
+
+		igt_spin_batch_free(fd, spin);
+
+		compare_regs(fd, tmpl, regs[1], "nonpriv read/writes");
+
+		for (int n = 0; n < ARRAY_SIZE(regs); n++)
+			gem_close(fd, regs[n]);
+		gem_context_destroy(fd, ctx);
+		gem_close(fd, tmpl);
+	}
+}
+
 static void isolation(int fd,
 		      const struct intel_execution_engine2 *e,
 		      unsigned int flags)
@@ -715,6 +813,9 @@ igt_main
 				igt_fork_hang_detector(fd);
 			}
 
+			igt_subtest_f("%s-nonpriv", e->name)
+				nonpriv(fd, e, 0);
+
 			igt_subtest_f("%s-clean", e->name)
 				isolation(fd, e, 0);
 			igt_subtest_f("%s-dirty-create", e->name)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 2d22c2c1c..87eb8bbb9 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -12,6 +12,11 @@ igt@gem_close_race@basic-threads
 igt@gem_cpu_reloc@basic
 igt@gem_ctx_create@basic
 igt@gem_ctx_create@basic-files
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv
 igt@gem_ctx_exec@basic
 igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
-- 
2.20.1

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

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

* ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (11 preceding siblings ...)
  2019-02-22 11:24 ` Chris Wilson
@ 2019-02-22 11:50 ` Patchwork
  2019-02-22 11:55 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (6 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22 11:50 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7)
URL   : https://patchwork.freedesktop.org/series/57039/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5653 -> IGTPW_2486
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/7/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - fi-skl-6260u:       NOTRUN -> FAIL +1
    - fi-skl-6770hq:      NOTRUN -> FAIL +1
    - fi-kbl-7500u:       NOTRUN -> FAIL +1
    - fi-cfl-guc:         NOTRUN -> FAIL +1
    - fi-kbl-r:           NOTRUN -> FAIL +1

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-cfl-8109u:       NOTRUN -> FAIL +1
    - fi-skl-6600u:       NOTRUN -> FAIL +1
    - fi-kbl-7560u:       NOTRUN -> FAIL +1
    - fi-bdw-5557u:       NOTRUN -> FAIL
    - fi-apl-guc:         NOTRUN -> FAIL +1
    - fi-skl-6700k2:      NOTRUN -> FAIL +1
    - fi-bsw-n3050:       NOTRUN -> FAIL
    - fi-icl-u3:          NOTRUN -> SKIP +3
    - fi-bsw-kefka:       NOTRUN -> FAIL
    - fi-kbl-x1275:       NOTRUN -> FAIL +1
    - fi-bxt-j4205:       NOTRUN -> FAIL +1
    - fi-kbl-8809g:       NOTRUN -> FAIL +1
    - fi-kbl-guc:         NOTRUN -> FAIL +1
    - fi-bdw-gvtdvm:      NOTRUN -> FAIL
    - fi-skl-guc:         NOTRUN -> FAIL +1
    - fi-kbl-7567u:       NOTRUN -> FAIL +1
    - fi-whl-u:           NOTRUN -> FAIL +1
    - fi-cfl-8700k:       NOTRUN -> FAIL +1

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-icl-u2:          NOTRUN -> SKIP +3

  
New tests
---------

  New tests have been introduced between CI_DRM_5653 and IGTPW_2486:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 18 fail(s) 4 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.23] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 22 fail(s) 14 skip(s)
    - Exec time: [0.0, 0.36] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 22 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.22] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 7 pass(s) 29 skip(s)
    - Exec time: [0.0, 0.07] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 22 pass(s) 14 skip(s)
    - Exec time: [0.0, 0.23] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_cs_nop@fork-gfx0:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109315] +17

  * igt@amdgpu/amd_cs_nop@sync-fork-compute0:
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109315] +17

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-byt-n2820:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-bwr-2160:        NOTRUN -> SKIP [fdo#109271] +4
    - fi-hsw-4770:        NOTRUN -> SKIP [fdo#109271] +4
    - fi-ivb-3770:        NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@vcs0-nonpriv} (NEW):
    - fi-pnv-d510:        NOTRUN -> SKIP [fdo#109271] +4
    - fi-gdg-551:         NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - fi-kbl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-7500u:       NOTRUN -> SKIP [fdo#109271]
    - fi-bsw-kefka:       NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-8700k:       NOTRUN -> SKIP [fdo#109271]
    - fi-bsw-n3050:       NOTRUN -> SKIP [fdo#109271]
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109276] +8
    - fi-skl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-bxt-j4205:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-8809g:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-r:           NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-x1275:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-6600u:       NOTRUN -> SKIP [fdo#109271]
    - fi-apl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-blb-e6850:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-skl-6700k2:      NOTRUN -> SKIP [fdo#109271]
    - fi-whl-u:           NOTRUN -> SKIP [fdo#109271]

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-ivb-3520m:       NOTRUN -> SKIP [fdo#109271] +4

  * igt@gem_exec_basic@readonly-bsd1:
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] +62
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109276] +8

  * igt@gem_exec_parse@basic-allowed:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109289] +1

  * igt@gem_exec_parse@basic-rejected:
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109289] +1

  * igt@i915_selftest@live_contexts:
    - fi-icl-u3:          NOTRUN -> DMESG-FAIL [fdo#108569]
    - fi-icl-u2:          NOTRUN -> DMESG-FAIL [fdo#108569]

  * igt@kms_busy@basic-flip-c:
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_chamelium@dp-edid-read:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109316] +2

  * igt@kms_chamelium@hdmi-crc-fast:
    - fi-icl-u2:          NOTRUN -> FAIL [fdo#109635 ]

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109284] +8

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       PASS -> FAIL [fdo#109485]

  * igt@kms_chamelium@vga-hpd-fast:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109309] +1

  * igt@kms_force_connector_basic@prune-stale-modes:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109285] +3
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109285] +3

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u3:          NOTRUN -> FAIL [fdo#103167]
    - fi-icl-u2:          NOTRUN -> FAIL [fdo#103167]

  
  {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#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109316]: https://bugs.freedesktop.org/show_bug.cgi?id=109316
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109635 ]: https://bugs.freedesktop.org/show_bug.cgi?id=109635 


Participating hosts (43 -> 37)
------------------------------

  Additional (3): fi-icl-u3 fi-icl-u2 fi-snb-2520m 
  Missing    (9): fi-kbl-soraka fi-ilk-m540 fi-skl-gvtdvm fi-hsw-peppy fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y fi-bdw-samus 


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

    * IGT: IGT_4851 -> IGTPW_2486

  CI_DRM_5653: 4fcf2e7e31b812965e59ccd9787076c7c7a52b78 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2486: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2486/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv

== Logs ==

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

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

* [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (12 preceding siblings ...)
  2019-02-22 11:50 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7) Patchwork
@ 2019-02-22 11:55 ` Chris Wilson
  2019-02-22 11:57 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3) Patchwork
                   ` (5 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Chris Wilson @ 2019-02-22 11:55 UTC (permalink / raw)
  To: intel-gfx

Verify that our list of nonpriv registers exist and are writable.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_isolation.c        | 164 +++++++++++++++++++++-----
 tests/intel-ci/fast-feedback.testlist |   5 +
 2 files changed, 140 insertions(+), 29 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 839d49ade..32b8c0bc8 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -59,16 +59,23 @@ enum {
 
 static const struct named_register {
 	const char *name;
-	unsigned int gen_mask;
-	unsigned int engine_mask;
-	uint32_t offset;
+	unsigned int gen_mask; /* on which gen the register exists */
+	unsigned int engine_mask; /* preferred engine / powerwell */
+	uint32_t offset; /* address of register, from bottom of mmio bar */
 	uint32_t count;
 	uint32_t ignore_bits;
+	uint32_t write_mask; /* some registers bits do not exist */
 	bool masked;
 } nonpriv_registers[] = {
 	{ "NOPID", NOCTX, RCS0, 0x2094 },
 	{ "MI_PREDICATE_RESULT_2", NOCTX, RCS0, 0x23bc },
-	{ "INSTPM", GEN6, RCS0, 0x20c0, 1, BIT(8) /* ro counter */, true },
+	{
+		"INSTPM",
+		GEN6, RCS0, 0x20c0,
+		.ignore_bits = BIT(8) /* ro counter */,
+		.write_mask = BIT(8) /* rsvd varies between gen */,
+		.masked = true,
+	},
 	{ "IA_VERTICES_COUNT", GEN4, RCS0, 0x2310, 2 },
 	{ "IA_PRIMITIVES_COUNT", GEN4, RCS0, 0x2318, 2 },
 	{ "VS_INVOCATION_COUNT", GEN4, RCS0, 0x2320, 2 },
@@ -78,7 +85,7 @@ static const struct named_register {
 	{ "GS_PRIMITIVES_COUNT", GEN4, RCS0, 0x2330, 2 },
 	{ "CL_INVOCATION_COUNT", GEN4, RCS0, 0x2338, 2 },
 	{ "CL_PRIMITIVES_COUNT", GEN4, RCS0, 0x2340, 2 },
-	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2 },
+	{ "PS_INVOCATION_COUNT_0", GEN4, RCS0, 0x22c8, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_0", GEN4, RCS0, 0x22d8, 2 },
 	{ "GPUGPU_DISPATCHDIMX", GEN8, RCS0, 0x2500 },
 	{ "GPUGPU_DISPATCHDIMY", GEN8, RCS0, 0x2504 },
@@ -86,7 +93,7 @@ static const struct named_register {
 	{ "MI_PREDICATE_SRC0", GEN8, RCS0, 0x2400, 2 },
 	{ "MI_PREDICATE_SRC1", GEN8, RCS0, 0x2408, 2 },
 	{ "MI_PREDICATE_DATA", GEN8, RCS0, 0x2410, 2 },
-	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418 },
+	{ "MI_PRED_RESULT", GEN8, RCS0, 0x2418, .write_mask = 0x1 },
 	{ "3DPRIM_END_OFFSET", GEN6, RCS0, 0x2420 },
 	{ "3DPRIM_START_VERTEX", GEN6, RCS0, 0x2430 },
 	{ "3DPRIM_VERTEX_COUNT", GEN6, RCS0, 0x2434 },
@@ -94,45 +101,45 @@ static const struct named_register {
 	{ "3DPRIM_START_INSTANCE", GEN6, RCS0, 0x243c },
 	{ "3DPRIM_BASE_VERTEX", GEN6, RCS0, 0x2440 },
 	{ "GPGPU_THREADS_DISPATCHED", GEN8, RCS0, 0x2290, 2 },
-	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2 },
+	{ "PS_INVOCATION_COUNT_1", GEN8, RCS0, 0x22f0, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_1", GEN8, RCS0, 0x22f8, 2 },
 	{ "BB_OFFSET", GEN8, RCS0, 0x2158, .ignore_bits = 0x4 },
 	{ "MI_PREDICATE_RESULT_1", GEN8, RCS0, 0x241c },
 	{ "CS_GPR", GEN8, RCS0, 0x2600, 32 },
 	{ "OA_CTX_CONTROL", GEN8, RCS0, 0x2360 },
 	{ "OACTXID", GEN8, RCS0, 0x2364 },
-	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2 },
+	{ "PS_INVOCATION_COUNT_2", GEN8, RCS0, 0x2448, 2, .write_mask = ~0x3 },
 	{ "PS_DEPTH_COUNT_2", GEN8, RCS0, 0x2450, 2 },
-	{ "Cache_Mode_0", GEN7, RCS0, 0x7000 },
-	{ "Cache_Mode_1", GEN7, RCS0, 0x7004 },
-	{ "GT_MODE", GEN8, RCS0, 0x7008 },
-	{ "L3_Config", GEN7, RCS0, 0x7034 },
-	{ "TD_CTL", GEN8, RCS0, 0xe400 },
+	{ "Cache_Mode_0", GEN7, RCS0, 0x7000, .masked = true },
+	{ "Cache_Mode_1", GEN7, RCS0, 0x7004, .masked = true },
+	{ "GT_MODE", GEN8, RCS0, 0x7008, .masked = true },
+	{ "L3_Config", GEN8, RCS0, 0x7034 },
+	{ "TD_CTL", GEN8, RCS0, 0xe400, .masked = true },
 	{ "TD_CTL2", GEN8, RCS0, 0xe404 },
-	{ "SO_NUM_PRIMS_WRITEN0", GEN6, RCS0, 0x5200, 2 },
-	{ "SO_NUM_PRIMS_WRITEN1", GEN6, RCS0, 0x5208, 2 },
-	{ "SO_NUM_PRIMS_WRITEN2", GEN6, RCS0, 0x5210, 2 },
-	{ "SO_NUM_PRIMS_WRITEN3", GEN6, RCS0, 0x5218, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN0", GEN6, RCS0, 0x5200, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN1", GEN6, RCS0, 0x5208, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN2", GEN6, RCS0, 0x5210, 2 },
+	{ "SO_NUM_PRIMS_WRITTEN3", GEN6, RCS0, 0x5218, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED0", GEN6, RCS0, 0x5240, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED1", GEN6, RCS0, 0x5248, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED2", GEN6, RCS0, 0x5250, 2 },
 	{ "SO_PRIM_STORAGE_NEEDED3", GEN6, RCS0, 0x5258, 2 },
-	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280 },
-	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284 },
-	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288 },
-	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c },
+	{ "SO_WRITE_OFFSET0", GEN7, RCS0, 0x5280, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET1", GEN7, RCS0, 0x5284, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET2", GEN7, RCS0, 0x5288, .write_mask = ~0x3 },
+	{ "SO_WRITE_OFFSET3", GEN7, RCS0, 0x528c, .write_mask = ~0x3 },
 	{ "OA_CONTROL", NOCTX, RCS0, 0x2b00 },
 	{ "PERF_CNT_1", NOCTX, RCS0, 0x91b8, 2 },
 	{ "PERF_CNT_2", NOCTX, RCS0, 0x91c0, 2 },
 
 	/* Privileged (enabled by w/a + FORCE_TO_NONPRIV) */
 	{ "CTX_PREEMPT", NOCTX /* GEN_RANGE(9, 10) */, RCS0, 0x2248 },
-	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580 },
-	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304 },
-	{ "L3SQREG1", GEN8, RCS0, 0xb010 },
+	{ "CS_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x2580, .masked = true },
+	{ "HDC_CHICKEN1", GEN_RANGE(9, 10), RCS0, 0x7304, .masked = true },
+	{ "L3SQREG4", GEN9, RCS0, 0xb118, .write_mask = ~0x1ffff0 },
 
 	{ "BCS_GPR", GEN9, BCS0, 0x22600, 32 },
-	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200 },
+	{ "BCS_SWCTRL", GEN8, BCS0, 0x22200, .write_mask = 0x3, .masked = true },
 
 	{ "VCS0_GPR", GEN9, VCS0, 0x12600, 32 },
 	{ "MFC_VDBOX1", NOCTX, VCS0, 0x12800, 64 },
@@ -191,6 +198,42 @@ static bool ignore_register(uint32_t offset)
 	return false;
 }
 
+static void tmpl_regs(int fd,
+		      uint32_t ctx,
+		      const struct intel_execution_engine2 *e,
+		      uint32_t handle,
+		      uint32_t value)
+{
+	const unsigned int gen_bit = 1 << intel_gen(intel_get_drm_devid(fd));
+	const unsigned int engine_bit = ENGINE(e->class, e->instance);
+	unsigned int regs_size;
+	uint32_t *regs;
+
+	regs_size = NUM_REGS * sizeof(uint32_t);
+	regs_size = PAGE_ALIGN(regs_size);
+
+	regs = gem_mmap__cpu(fd, handle, 0, regs_size, PROT_WRITE);
+	gem_set_domain(fd, handle,
+		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
+
+	for (const struct named_register *r = nonpriv_registers; r->name; r++) {
+		if (!(r->engine_mask & engine_bit))
+			continue;
+		if (!(r->gen_mask & gen_bit))
+			continue;
+		for (unsigned count = r->count ?: 1, offset = r->offset;
+		     count--; offset += 4) {
+			uint32_t x = value;
+			if (r->write_mask)
+				x &= r->write_mask;
+			if (r->masked)
+				x &= 0xffff;
+			regs[offset/sizeof(*regs)] = x;
+		}
+	}
+	munmap(regs, regs_size);
+}
+
 static uint32_t read_regs(int fd,
 			  uint32_t ctx,
 			  const struct intel_execution_engine2 *e,
@@ -294,12 +337,15 @@ static void write_regs(int fd,
 			continue;
 		for (unsigned count = r->count ?: 1, offset = r->offset;
 		     count--; offset += 4) {
+			uint32_t x = value;
+			if (r->write_mask)
+				x &= r->write_mask;
+			if (r->masked)
+				x |= 0xffffu << 16;
+
 			*b++ = 0x22 << 23 | 1; /* LRI */
 			*b++ = offset;
-			if (r->masked)
-				*b++ = value | 0xffffu << 16;
-			else
-				*b++ = value;
+			*b++ = x;
 		}
 	}
 	*b++ = MI_BATCH_BUFFER_END;
@@ -474,6 +520,63 @@ static void compare_regs(int fd, uint32_t A, uint32_t B, const char *who)
 		     num_errors, who);
 }
 
+static void nonpriv(int fd,
+		    const struct intel_execution_engine2 *e,
+		    unsigned int flags)
+{
+	static const uint32_t values[] = {
+		0x0,
+		0xffffffff,
+		0xcccccccc,
+		0x33333333,
+		0x55555555,
+		0xaaaaaaaa,
+		0xdeadbeef
+	};
+	unsigned int engine =
+		gem_class_instance_to_eb_flags(fd, e->class, e->instance);
+	unsigned int num_values = ARRAY_SIZE(values);
+
+	/* Sigh -- we need cmdparser access to our own registers! */
+	igt_skip_on(intel_gen(intel_get_drm_devid(fd)) < 8);
+
+	gem_quiescent_gpu(fd);
+
+	for (int v = 0; v < num_values; v++) {
+		igt_spin_t *spin = NULL;
+		uint32_t ctx, regs[2], tmpl;
+
+		ctx = gem_context_create(fd);
+		tmpl = read_regs(fd, ctx, e, flags);
+		regs[0] = read_regs(fd, ctx, e, flags);
+
+		tmpl_regs(fd, ctx, e, tmpl, values[v]);
+
+		spin = igt_spin_batch_new(fd, .ctx = ctx, .engine = engine);
+
+		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
+			  __func__, v, values[v]);
+		write_regs(fd, ctx, e, flags, values[v]);
+
+		regs[1] = read_regs(fd, ctx, e, flags);
+
+		/*
+		 * Restore the original register values before the HW idles.
+		 * Or else it may never restart!
+		 */
+		restore_regs(fd, ctx, e, flags, regs[0]);
+
+		igt_spin_batch_free(fd, spin);
+
+		compare_regs(fd, tmpl, regs[1], "nonpriv read/writes");
+
+		for (int n = 0; n < ARRAY_SIZE(regs); n++)
+			gem_close(fd, regs[n]);
+		gem_context_destroy(fd, ctx);
+		gem_close(fd, tmpl);
+	}
+}
+
 static void isolation(int fd,
 		      const struct intel_execution_engine2 *e,
 		      unsigned int flags)
@@ -715,6 +818,9 @@ igt_main
 				igt_fork_hang_detector(fd);
 			}
 
+			igt_subtest_f("%s-nonpriv", e->name)
+				nonpriv(fd, e, 0);
+
 			igt_subtest_f("%s-clean", e->name)
 				isolation(fd, e, 0);
 			igt_subtest_f("%s-dirty-create", e->name)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 2d22c2c1c..87eb8bbb9 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -12,6 +12,11 @@ igt@gem_close_race@basic-threads
 igt@gem_cpu_reloc@basic
 igt@gem_ctx_create@basic
 igt@gem_ctx_create@basic-files
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv
 igt@gem_ctx_exec@basic
 igt@gem_ctx_param@basic
 igt@gem_ctx_param@basic-default
-- 
2.20.1

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

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

* ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (13 preceding siblings ...)
  2019-02-22 11:55 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
@ 2019-02-22 11:57 ` Patchwork
  2019-02-22 12:28 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8) Patchwork
                   ` (4 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22 11:57 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3)
URL   : https://patchwork.freedesktop.org/series/57039/
State : failure

== Summary ==

CI Bug Log - changes from IGT_4851_full -> IGTPW_2481_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2481_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2481_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/3/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-glk:          PASS -> FAIL +2

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - shard-snb:          NOTRUN -> FAIL
    - shard-hsw:          NOTRUN -> FAIL

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          PASS -> FAIL
    - shard-apl:          PASS -> FAIL +1

  
New tests
---------

  New tests have been introduced between IGT_4851_full and IGTPW_2481_full:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 2 fail(s) 3 pass(s)
    - Exec time: [0.04, 0.14] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.04] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-apl:          PASS -> FAIL [fdo#109472]
    - shard-kbl:          PASS -> FAIL [fdo#109472]

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] +7

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] +3

  * igt@gem_eio@reset-stress:
    - shard-snb:          PASS -> FAIL [fdo#109661]

  * igt@gem_exec_parallel@vebox-fds:
    - shard-apl:          PASS -> INCOMPLETE [fdo#103927]

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-kbl:          NOTRUN -> SKIP [fdo#109271] +4

  * igt@gem_exec_store@basic-bsd2:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +30

  * igt@gem_userptr_blits@process-exit-gtt:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +25

  * igt@kms_busy@extended-pageflip-hang-newfb-render-e:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +2
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +1

  * igt@kms_cursor_crc@cursor-256x85-random:
    - shard-apl:          PASS -> FAIL [fdo#103232] +3

  * igt@kms_cursor_crc@cursor-64x64-dpms:
    - shard-kbl:          PASS -> FAIL [fdo#103232] +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-apl:          PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-apl:          PASS -> FAIL [fdo#103167] / [fdo#105682]

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
    - shard-glk:          PASS -> FAIL [fdo#103167] +8

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-apl:          PASS -> FAIL [fdo#108948]

  * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
    - shard-apl:          PASS -> FAIL [fdo#108145]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-yf:
    - shard-kbl:          PASS -> FAIL [fdo#103166] +2

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
    - shard-apl:          PASS -> FAIL [fdo#103166] +2

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
    - shard-glk:          PASS -> FAIL [fdo#103166] +2

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-kbl:          PASS -> FAIL [fdo#109016]

  * igt@kms_vblank@pipe-b-ts-continuation-modeset:
    - shard-apl:          PASS -> FAIL [fdo#104894]

  
#### Possible fixes ####

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-snb:          SKIP [fdo#109271] -> PASS

  * igt@kms_color@pipe-a-degamma:
    - shard-kbl:          FAIL [fdo#104782] / [fdo#108145] -> PASS

  * igt@kms_color@pipe-a-gamma:
    - shard-kbl:          FAIL [fdo#104782] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-dpms:
    - shard-kbl:          FAIL [fdo#103232] -> PASS +1

  * igt@kms_cursor_crc@cursor-64x21-sliding:
    - shard-apl:          FAIL [fdo#103232] -> PASS +3

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-apl:          FAIL [fdo#109350] -> PASS
    - shard-glk:          FAIL [fdo#109350] -> PASS

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-glk:          FAIL [fdo#105363] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-glk:          FAIL [fdo#103167] -> PASS +5

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
    - shard-kbl:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-apl:          FAIL [fdo#103167] -> PASS +4

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-snb:          INCOMPLETE [fdo#105411] / [fdo#107469] -> PASS

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-glk:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
    - shard-apl:          FAIL [fdo#103166] -> PASS +3

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-glk:          FAIL [fdo#103166] -> PASS +2

  * igt@kms_setmode@basic:
    - shard-hsw:          FAIL [fdo#99912] -> PASS

  
#### Warnings ####

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-apl:          INCOMPLETE [fdo#103927] -> SKIP [fdo#109271]

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682
  [fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109016]: https://bugs.freedesktop.org/show_bug.cgi?id=109016
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#109472]: https://bugs.freedesktop.org/show_bug.cgi?id=109472
  [fdo#109661]: https://bugs.freedesktop.org/show_bug.cgi?id=109661
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


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

    * IGT: IGT_4851 -> IGTPW_2481

  CI_DRM_5650: a4c5c4791699aeebfff694c222c76abb61900fca @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2481: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2481/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (14 preceding siblings ...)
  2019-02-22 11:57 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3) Patchwork
@ 2019-02-22 12:28 ` Patchwork
  2019-02-22 13:34 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4) Patchwork
                   ` (3 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22 12:28 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8)
URL   : https://patchwork.freedesktop.org/series/57039/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5653 -> IGTPW_2488
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/8/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-icl-u3:          NOTRUN -> SKIP +3

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-icl-u2:          NOTRUN -> SKIP +3
    - {fi-icl-y}:         NOTRUN -> SKIP +3

  
New tests
---------

  New tests have been introduced between CI_DRM_5653 and IGTPW_2488:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 23 pass(s) 15 skip(s)
    - Exec time: [0.0, 0.23] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 23 pass(s) 15 skip(s)
    - Exec time: [0.0, 0.22] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 23 pass(s) 15 skip(s)
    - Exec time: [0.0, 0.23] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 8 pass(s) 30 skip(s)
    - Exec time: [0.0, 0.07] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 23 pass(s) 15 skip(s)
    - Exec time: [0.0, 0.22] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@userptr:
    - fi-kbl-8809g:       PASS -> DMESG-WARN [fdo#108965]

  * igt@amdgpu/amd_cs_nop@fork-gfx0:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109315] +17

  * igt@amdgpu/amd_cs_nop@sync-fork-compute0:
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109315] +17

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - fi-elk-e7500:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-byt-n2820:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-ilk-650:         NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - fi-bwr-2160:        NOTRUN -> SKIP [fdo#109271] +4
    - fi-hsw-4770:        NOTRUN -> SKIP [fdo#109271] +4
    - fi-ivb-3770:        NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@vcs0-nonpriv} (NEW):
    - fi-gdg-551:         NOTRUN -> SKIP [fdo#109271] +4

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - fi-kbl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-7500u:       NOTRUN -> SKIP [fdo#109271]
    - fi-bsw-kefka:       NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-8700k:       NOTRUN -> SKIP [fdo#109271]
    - fi-bsw-n3050:       NOTRUN -> SKIP [fdo#109271]
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109276] +8
    - fi-skl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-cfl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-bxt-j4205:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-8809g:       NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-r:           NOTRUN -> SKIP [fdo#109271]
    - fi-kbl-x1275:       NOTRUN -> SKIP [fdo#109271]
    - fi-skl-6600u:       NOTRUN -> SKIP [fdo#109271]
    - fi-apl-guc:         NOTRUN -> SKIP [fdo#109271]
    - fi-blb-e6850:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-skl-6700k2:      NOTRUN -> SKIP [fdo#109271]
    - {fi-icl-y}:         NOTRUN -> SKIP [fdo#109276]
    - fi-whl-u:           NOTRUN -> SKIP [fdo#109271]

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - fi-hsw-4770r:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-hsw-peppy:       NOTRUN -> SKIP [fdo#109271] +4
    - fi-ivb-3520m:       NOTRUN -> SKIP [fdo#109271] +4

  * igt@gem_exec_basic@readonly-bsd1:
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] +62
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109276] +8

  * igt@gem_exec_parse@basic-allowed:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109289] +1

  * igt@gem_exec_parse@basic-rejected:
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109289] +1

  * igt@i915_selftest@live_contexts:
    - fi-icl-u3:          NOTRUN -> INCOMPLETE [fdo#108569]
    - fi-icl-u2:          NOTRUN -> DMESG-FAIL [fdo#108569]

  * igt@kms_busy@basic-flip-c:
    - fi-snb-2520m:       NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_chamelium@dp-edid-read:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109316] +2

  * igt@kms_chamelium@hdmi-crc-fast:
    - fi-icl-u2:          NOTRUN -> FAIL [fdo#109635 ]

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109284] +8

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       PASS -> FAIL [fdo#109485]

  * igt@kms_chamelium@vga-hpd-fast:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109309] +1

  * igt@kms_force_connector_basic@prune-stale-modes:
    - fi-icl-u2:          NOTRUN -> SKIP [fdo#109285] +3
    - fi-icl-u3:          NOTRUN -> SKIP [fdo#109285] +3

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u3:          NOTRUN -> FAIL [fdo#103167]
    - fi-icl-u2:          NOTRUN -> FAIL [fdo#103167]

  * igt@prime_vgem@basic-fence-flip:
    - fi-ilk-650:         PASS -> FAIL [fdo#104008]

  
  {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#104008]: https://bugs.freedesktop.org/show_bug.cgi?id=104008
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109316]: https://bugs.freedesktop.org/show_bug.cgi?id=109316
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109635 ]: https://bugs.freedesktop.org/show_bug.cgi?id=109635 


Participating hosts (43 -> 39)
------------------------------

  Additional (3): fi-icl-u3 fi-icl-u2 fi-snb-2520m 
  Missing    (7): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 fi-bdw-samus 


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

    * IGT: IGT_4851 -> IGTPW_2488

  CI_DRM_5653: 4fcf2e7e31b812965e59ccd9787076c7c7a52b78 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2488: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2488/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_isolation@bcs0-nonpriv
+igt@gem_ctx_isolation@rcs0-nonpriv
+igt@gem_ctx_isolation@vcs0-nonpriv
+igt@gem_ctx_isolation@vcs1-nonpriv
+igt@gem_ctx_isolation@vecs0-nonpriv

== Logs ==

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

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

* ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (15 preceding siblings ...)
  2019-02-22 12:28 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8) Patchwork
@ 2019-02-22 13:34 ` Patchwork
  2019-02-22 14:49 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5) Patchwork
                   ` (2 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22 13:34 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4)
URL   : https://patchwork.freedesktop.org/series/57039/
State : failure

== Summary ==

CI Bug Log - changes from IGT_4851_full -> IGTPW_2483_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2483_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2483_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/4/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-glk:          PASS -> FAIL +2

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - shard-hsw:          NOTRUN -> FAIL

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          PASS -> FAIL
    - shard-apl:          PASS -> FAIL +1

  
New tests
---------

  New tests have been introduced between IGT_4851_full and IGTPW_2483_full:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 1 fail(s) 4 pass(s)
    - Exec time: [0.03, 0.16] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.05] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-apl:          PASS -> FAIL [fdo#109472]
    - shard-kbl:          PASS -> FAIL [fdo#109472]

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] +7

  * {igt@gem_ctx_isolation@vecs0-nonpriv} (NEW):
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] +3

  * igt@gem_exec_store@basic-bsd2:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +36

  * igt@gem_userptr_blits@process-exit-gtt:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +24

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-kbl:          PASS -> INCOMPLETE [fdo#103665]

  * igt@kms_busy@extended-pageflip-hang-newfb-render-e:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +2
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +1

  * igt@kms_cursor_crc@cursor-128x128-suspend:
    - shard-apl:          PASS -> FAIL [fdo#103191] / [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x21-random:
    - shard-apl:          PASS -> FAIL [fdo#103232] +3
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-glk:          PASS -> FAIL [fdo#104873]

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-glk:          PASS -> FAIL [fdo#102887] / [fdo#105363]

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff:
    - shard-glk:          PASS -> FAIL [fdo#103167] +3

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite:
    - shard-kbl:          NOTRUN -> SKIP [fdo#109271] +4

  * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
    - shard-apl:          PASS -> FAIL [fdo#108145]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-apl:          PASS -> FAIL [fdo#103166] +4
    - shard-kbl:          PASS -> FAIL [fdo#103166] +2

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
    - shard-glk:          PASS -> FAIL [fdo#103166] +5

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-glk:          PASS -> DMESG-FAIL [fdo#105763] / [fdo#106538]
    - shard-kbl:          PASS -> DMESG-FAIL [fdo#105763]

  * igt@kms_setmode@basic:
    - shard-apl:          PASS -> FAIL [fdo#99912]

  * igt@kms_vblank@pipe-c-ts-continuation-modeset:
    - shard-kbl:          PASS -> FAIL [fdo#104894] +1
    - shard-apl:          PASS -> FAIL [fdo#104894] +3

  * igt@perf@blocking:
    - shard-apl:          PASS -> INCOMPLETE [fdo#103927] +1

  
#### Possible fixes ####

  * igt@kms_color@pipe-a-degamma:
    - shard-kbl:          FAIL [fdo#104782] / [fdo#108145] -> PASS

  * igt@kms_color@pipe-a-gamma:
    - shard-kbl:          FAIL [fdo#104782] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-dpms:
    - shard-kbl:          FAIL [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-64x21-sliding:
    - shard-apl:          FAIL [fdo#103232] -> PASS +5

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-apl:          FAIL [fdo#109350] -> PASS
    - shard-glk:          FAIL [fdo#109350] -> PASS

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-glk:          FAIL [fdo#103232] -> PASS

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-glk:          FAIL [fdo#105363] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-glk:          FAIL [fdo#103167] -> PASS +3

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
    - shard-kbl:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-apl:          FAIL [fdo#103167] -> PASS +5

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-snb:          INCOMPLETE [fdo#105411] / [fdo#107469] -> PASS

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-glk:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
    - shard-apl:          FAIL [fdo#103166] -> PASS +2

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
    - shard-glk:          FAIL [fdo#103166] -> PASS +1

  * igt@testdisplay:
    - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS

  
#### Warnings ####

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-apl:          INCOMPLETE [fdo#103927] -> SKIP [fdo#109271]

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

  [fdo#102887]: https://bugs.freedesktop.org/show_bug.cgi?id=102887
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [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#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
  [fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#109472]: https://bugs.freedesktop.org/show_bug.cgi?id=109472
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


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

    * IGT: IGT_4851 -> IGTPW_2483

  CI_DRM_5650: a4c5c4791699aeebfff694c222c76abb61900fca @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2483: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2483/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (16 preceding siblings ...)
  2019-02-22 13:34 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4) Patchwork
@ 2019-02-22 14:49 ` Patchwork
  2019-02-22 21:07 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7) Patchwork
  2019-02-22 21:48 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8) Patchwork
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22 14:49 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5)
URL   : https://patchwork.freedesktop.org/series/57039/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5651_full -> IGTPW_2484_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2484_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2484_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/5/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-glk:          PASS -> FAIL +2

  * igt@gem_ctx_isolation@rcs0-reset:
    - shard-apl:          PASS -> FAIL

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          PASS -> FAIL

  
New tests
---------

  New tests have been introduced between CI_DRM_5651_full and IGTPW_2484_full:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 5 pass(s)
    - Exec time: [0.04, 0.14] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.04] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-apl:          PASS -> FAIL [fdo#109472]
    - shard-kbl:          PASS -> FAIL [fdo#109472]

  * {igt@gem_ctx_isolation@vcs1-nonpriv} (NEW):
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] +7

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-kbl:          NOTRUN -> SKIP [fdo#109271] +5

  * igt@gem_userptr_blits@process-exit-gtt:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +24

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-kbl:          PASS -> SKIP [fdo#109271]

  * igt@i915_suspend@sysfs-reader:
    - shard-snb:          PASS -> INCOMPLETE [fdo#105411]

  * igt@kms_atomic_transition@4x-modeset-transitions:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-hsw:          PASS -> DMESG-WARN [fdo#102614]

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c:
    - shard-kbl:          PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_busy@extended-pageflip-hang-newfb-render-e:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +1

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c:
    - shard-hsw:          NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-glk:          PASS -> FAIL [fdo#108145]

  * igt@kms_color@pipe-a-ctm-max:
    - shard-apl:          PASS -> FAIL [fdo#108147]

  * igt@kms_color@pipe-c-legacy-gamma:
    - shard-apl:          PASS -> FAIL [fdo#104782]

  * igt@kms_cursor_crc@cursor-256x256-suspend:
    - shard-apl:          PASS -> FAIL [fdo#103191] / [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x21-sliding:
    - shard-apl:          PASS -> FAIL [fdo#103232] +2

  * igt@kms_cursor_crc@cursor-64x64-onscreen:
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x64-suspend:
    - shard-kbl:          PASS -> FAIL [fdo#103191] / [fdo#103232]

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic:
    - shard-hsw:          PASS -> FAIL [fdo#103355]

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-kbl:          PASS -> FAIL [fdo#103167] / [fdo#105682]
    - shard-apl:          PASS -> FAIL [fdo#103167] / [fdo#105682]

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff:
    - shard-glk:          PASS -> FAIL [fdo#103167] +9

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite:
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] +30

  * igt@kms_frontbuffer_tracking@psr-slowdraw:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +14

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-apl:          PASS -> FAIL [fdo#108948]

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
    - shard-apl:          PASS -> INCOMPLETE [fdo#103927]

  * igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +1

  * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
    - shard-apl:          PASS -> FAIL [fdo#108145]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
    - shard-apl:          PASS -> FAIL [fdo#103166] +2
    - shard-kbl:          PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-glk:          PASS -> FAIL [fdo#103166] +7

  * igt@kms_vblank@pipe-b-ts-continuation-dpms-rpm:
    - shard-apl:          PASS -> FAIL [fdo#104894]
    - shard-kbl:          PASS -> FAIL [fdo#104894]

  
#### Possible fixes ####

  * igt@kms_color@pipe-a-degamma:
    - shard-apl:          FAIL [fdo#104782] / [fdo#108145] -> PASS
    - shard-kbl:          FAIL [fdo#104782] / [fdo#108145] -> PASS

  * igt@kms_color@pipe-a-gamma:
    - shard-kbl:          FAIL [fdo#104782] -> PASS

  * igt@kms_color@pipe-b-ctm-max:
    - shard-apl:          FAIL [fdo#108147] -> PASS

  * igt@kms_color@pipe-b-legacy-gamma:
    - shard-glk:          FAIL [fdo#104782] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-dpms:
    - shard-kbl:          FAIL [fdo#103232] -> PASS +2

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS +3

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
    - shard-kbl:          FAIL [fdo#103167] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-apl:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-snb:          INCOMPLETE [fdo#105411] / [fdo#107469] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt:
    - shard-glk:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-glk:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
    - shard-apl:          FAIL [fdo#103166] -> PASS +1
    - shard-glk:          FAIL [fdo#103166] -> PASS +1

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
    - shard-glk:          FAIL [fdo#108145] -> PASS

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-kbl:          DMESG-FAIL [fdo#105763] -> PASS

  * igt@kms_setmode@basic:
    - shard-glk:          FAIL [fdo#99912] -> PASS

  * igt@testdisplay:
    - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS

  
  {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#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103355]: https://bugs.freedesktop.org/show_bug.cgi?id=103355
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109472]: https://bugs.freedesktop.org/show_bug.cgi?id=109472
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


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

    * IGT: IGT_4851 -> IGTPW_2484
    * Piglit: piglit_4509 -> None

  CI_DRM_5651: 434503f9826f553df36a0495383b32eaa949a0aa @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2484: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2484/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ 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_2484/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (17 preceding siblings ...)
  2019-02-22 14:49 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5) Patchwork
@ 2019-02-22 21:07 ` Patchwork
  2019-02-22 21:48 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8) Patchwork
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22 21:07 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7)
URL   : https://patchwork.freedesktop.org/series/57039/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5653_full -> IGTPW_2486_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2486_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2486_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/7/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_isolation@bcs0-nonpriv} (NEW):
    - shard-glk:          NOTRUN -> FAIL

  * {igt@gem_ctx_isolation@rcs0-nonpriv} (NEW):
    - shard-apl:          NOTRUN -> FAIL +1
    - shard-kbl:          NOTRUN -> FAIL

  * igt@gem_ctx_isolation@rcs0-reset:
    - shard-glk:          PASS -> FAIL +1

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          PASS -> FAIL
    - shard-apl:          PASS -> FAIL +1

  
New tests
---------

  New tests have been introduced between CI_DRM_5653_full and IGTPW_2486_full:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 2 fail(s) 2 skip(s)
    - Exec time: [0.0, 0.19] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 2 fail(s) 2 skip(s)
    - Exec time: [0.0, 0.16] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.13] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.04] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-apl:          PASS -> FAIL [fdo#109472]
    - shard-kbl:          PASS -> FAIL [fdo#109472]

  * igt@gem_exec_big:
    - shard-hsw:          PASS -> TIMEOUT [fdo#107937]

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-kbl:          NOTRUN -> SKIP [fdo#109271] +5

  * igt@gem_userptr_blits@process-exit-gtt:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +25

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-kbl:          PASS -> INCOMPLETE [fdo#103665] / [fdo#107807]

  * igt@kms_busy@extended-pageflip-hang-newfb-render-e:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +1

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a:
    - shard-hsw:          NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-apl:          PASS -> FAIL [fdo#106510] / [fdo#108145]

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
    - shard-glk:          PASS -> FAIL [fdo#108145]

  * igt@kms_color@pipe-a-ctm-max:
    - shard-apl:          PASS -> FAIL [fdo#108147]

  * igt@kms_color@pipe-a-legacy-gamma:
    - shard-glk:          PASS -> FAIL [fdo#104782] / [fdo#108145]

  * igt@kms_concurrent@pipe-d:
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +5

  * igt@kms_cursor_crc@cursor-128x128-suspend:
    - shard-apl:          PASS -> FAIL [fdo#103191] / [fdo#103232] +1

  * igt@kms_cursor_crc@cursor-64x21-sliding:
    - shard-apl:          PASS -> FAIL [fdo#103232] +5

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-apl:          PASS -> FAIL [fdo#109350]

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-glk:          PASS -> FAIL [fdo#103232]
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
    - shard-glk:          PASS -> FAIL [fdo#107409]

  * igt@kms_flip@2x-plain-flip-ts-check:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +18

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite:
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] +41

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-pwrite:
    - shard-glk:          PASS -> FAIL [fdo#103167] +4

  * igt@kms_frontbuffer_tracking@fbc-2p-rte:
    - shard-glk:          PASS -> FAIL [fdo#103167] / [fdo#105682]

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu:
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] +7

  * igt@kms_plane@pixel-format-pipe-c-planes:
    - shard-apl:          PASS -> FAIL [fdo#103166] +3

  * igt@kms_plane@pixel-format-pipe-c-planes-source-clamping:
    - shard-apl:          PASS -> FAIL [fdo#108948]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
    - shard-glk:          PASS -> FAIL [fdo#103166] +6

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
    - shard-kbl:          PASS -> FAIL [fdo#103166] +1

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-kbl:          PASS -> FAIL [fdo#109016]

  * igt@kms_vblank@pipe-a-ts-continuation-modeset:
    - shard-apl:          PASS -> FAIL [fdo#104894]
    - shard-kbl:          PASS -> FAIL [fdo#104894]

  * igt@syncobj_wait@wait-all-delayed-signal:
    - shard-snb:          PASS -> INCOMPLETE [fdo#105411]

  
#### Possible fixes ####

  * igt@gem_exec_flush@basic-uc-rw-default:
    - shard-hsw:          INCOMPLETE [fdo#103540] -> PASS

  * igt@kms_color@pipe-a-degamma:
    - shard-kbl:          FAIL [fdo#104782] / [fdo#108145] -> PASS

  * igt@kms_color@pipe-a-gamma:
    - shard-kbl:          FAIL [fdo#104782] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-dpms:
    - shard-kbl:          FAIL [fdo#103232] -> PASS +2

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS +3

  * igt@kms_cursor_crc@cursor-64x64-suspend:
    - shard-apl:          FAIL [fdo#103191] / [fdo#103232] -> PASS

  * igt@kms_flip@modeset-vs-vblank-race:
    - shard-glk:          FAIL [fdo#103060] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
    - shard-glk:          FAIL [fdo#103167] -> PASS +2
    - shard-kbl:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-apl:          FAIL [fdo#103167] -> PASS +2

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-snb:          INCOMPLETE [fdo#105411] / [fdo#107469] -> PASS

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-glk:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
    - shard-apl:          FAIL [fdo#103166] -> PASS +1

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
    - shard-apl:          FAIL [fdo#108145] -> PASS

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-kbl:          DMESG-FAIL [fdo#105763] -> PASS

  * igt@testdisplay:
    - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS

  
  {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#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106510]: https://bugs.freedesktop.org/show_bug.cgi?id=106510
  [fdo#107409]: https://bugs.freedesktop.org/show_bug.cgi?id=107409
  [fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
  [fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
  [fdo#107937]: https://bugs.freedesktop.org/show_bug.cgi?id=107937
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109016]: https://bugs.freedesktop.org/show_bug.cgi?id=109016
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#109472]: https://bugs.freedesktop.org/show_bug.cgi?id=109472


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


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

    * IGT: IGT_4851 -> IGTPW_2486
    * Piglit: piglit_4509 -> None

  CI_DRM_5653: 4fcf2e7e31b812965e59ccd9787076c7c7a52b78 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2486: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2486/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ 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_2486/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8)
  2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
                   ` (18 preceding siblings ...)
  2019-02-22 21:07 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7) Patchwork
@ 2019-02-22 21:48 ` Patchwork
  19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2019-02-22 21:48 UTC (permalink / raw)
  To: intel-gfx

== Series Details ==

Series: RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8)
URL   : https://patchwork.freedesktop.org/series/57039/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5653_full -> IGTPW_2488_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2488_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2488_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/57039/revisions/8/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-glk:          PASS -> FAIL +1

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-kbl:          PASS -> FAIL
    - shard-apl:          PASS -> FAIL +1

  
New tests
---------

  New tests have been introduced between CI_DRM_5653_full and IGTPW_2488_full:

### New IGT tests (5) ###

  * igt@gem_ctx_isolation@bcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@rcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@vcs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.04] s

  * igt@gem_ctx_isolation@vecs0-nonpriv:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@rcs0-dirty-switch:
    - shard-apl:          PASS -> FAIL [fdo#109472]
    - shard-kbl:          PASS -> FAIL [fdo#109472]

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-kbl:          NOTRUN -> SKIP [fdo#109271] +6

  * igt@gem_userptr_blits@process-exit-gtt:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +25

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-kbl:          PASS -> INCOMPLETE [fdo#103665] / [fdo#107807]

  * igt@kms_addfb_basic@unused-handle:
    - shard-apl:          PASS -> INCOMPLETE [fdo#103927] +1

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-kbl:          PASS -> INCOMPLETE [fdo#103665]

  * igt@kms_busy@extended-pageflip-hang-newfb-render-e:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +1

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a:
    - shard-hsw:          NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
    - shard-glk:          PASS -> FAIL [fdo#108145]

  * igt@kms_color@pipe-b-ctm-max:
    - shard-apl:          PASS -> FAIL [fdo#108147]

  * igt@kms_concurrent@pipe-d:
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +4

  * igt@kms_cursor_crc@cursor-256x85-random:
    - shard-apl:          PASS -> FAIL [fdo#103232] +2

  * igt@kms_cursor_crc@cursor-64x21-sliding:
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x64-random:
    - shard-apl:          NOTRUN -> FAIL [fdo#103232] +1

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-glk:          PASS -> FAIL [fdo#109350]

  * igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
    - shard-glk:          PASS -> FAIL [fdo#105454]

  * igt@kms_flip@2x-plain-flip-ts-check:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +18

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-kbl:          PASS -> FAIL [fdo#103167] +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-apl:          PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
    - shard-glk:          PASS -> FAIL [fdo#103167] +5

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite:
    - shard-snb:          NOTRUN -> SKIP [fdo#109271] +40

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu:
    - shard-hsw:          NOTRUN -> SKIP [fdo#109271] +6

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-yf:
    - shard-kbl:          PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
    - shard-glk:          PASS -> FAIL [fdo#103166] +6

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
    - shard-apl:          PASS -> FAIL [fdo#103166] +5

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-kbl:          PASS -> FAIL [fdo#109016]

  * igt@kms_vblank@pipe-a-ts-continuation-modeset-rpm:
    - shard-apl:          PASS -> FAIL [fdo#104894] +2
    - shard-kbl:          PASS -> FAIL [fdo#104894]

  
#### Possible fixes ####

  * igt@gem_exec_flush@basic-uc-rw-default:
    - shard-hsw:          INCOMPLETE [fdo#103540] -> PASS

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-snb:          SKIP [fdo#109271] -> PASS

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-glk:          FAIL [fdo#108145] -> PASS

  * igt@kms_color@pipe-a-gamma:
    - shard-kbl:          FAIL [fdo#104782] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-dpms:
    - shard-kbl:          FAIL [fdo#103232] -> PASS +2

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS +3

  * igt@kms_cursor_crc@cursor-64x64-suspend:
    - shard-apl:          FAIL [fdo#103191] / [fdo#103232] -> PASS

  * igt@kms_flip@modeset-vs-vblank-race:
    - shard-glk:          FAIL [fdo#103060] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
    - shard-kbl:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-apl:          FAIL [fdo#103167] -> PASS +2

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-snb:          INCOMPLETE [fdo#105411] / [fdo#107469] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
    - shard-glk:          FAIL [fdo#103167] -> PASS +3

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-glk:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-none:
    - shard-glk:          FAIL [fdo#103166] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
    - shard-apl:          FAIL [fdo#103166] -> PASS

  * igt@kms_setmode@basic:
    - shard-apl:          FAIL [fdo#99912] -> PASS
    - shard-kbl:          FAIL [fdo#99912] -> PASS

  * igt@testdisplay:
    - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS +1
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS

  
  {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#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105454]: https://bugs.freedesktop.org/show_bug.cgi?id=105454
  [fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
  [fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109016]: https://bugs.freedesktop.org/show_bug.cgi?id=109016
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#109472]: https://bugs.freedesktop.org/show_bug.cgi?id=109472
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


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

    * IGT: IGT_4851 -> IGTPW_2488
    * Piglit: piglit_4509 -> None

  CI_DRM_5653: 4fcf2e7e31b812965e59ccd9787076c7c7a52b78 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2488: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2488/
  IGT_4851: 2b7dd10a4e2ea0cabff68421fd15e96c99be3cad @ 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_2488/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2019-02-22 21:48 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-21 18:21 [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
2019-02-21 20:55 ` Chris Wilson
2019-02-21 21:43 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2) Patchwork
2019-02-21 22:32 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
2019-02-21 23:07 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3) Patchwork
2019-02-21 23:32 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
2019-02-22  0:09 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4) Patchwork
2019-02-22  0:33 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
2019-02-22  0:55 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5) Patchwork
2019-02-22  7:55 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Patchwork
2019-02-22 10:37 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev2) Patchwork
2019-02-22 11:18 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
2019-02-22 11:24 ` Chris Wilson
2019-02-22 11:50 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7) Patchwork
2019-02-22 11:55 ` [PATCH i-g-t] RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access Chris Wilson
2019-02-22 11:57 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev3) Patchwork
2019-02-22 12:28 ` ✓ Fi.CI.BAT: success for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8) Patchwork
2019-02-22 13:34 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev4) Patchwork
2019-02-22 14:49 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev5) Patchwork
2019-02-22 21:07 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev7) Patchwork
2019-02-22 21:48 ` ✗ Fi.CI.IGT: failure for RFT i915/gem_ctx_isolation: Sanitycheck nonpriv access (rev8) 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.