All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement
@ 2017-12-22 11:03 Chris Wilson
  2017-12-22 11:03 ` [PATCH igt 2/5] igt/perf_pmu: Tighten measurements for most-busy Chris Wilson
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Chris Wilson @ 2017-12-22 11:03 UTC (permalink / raw)
  To: intel-gfx

Sleep for a known duration. In particular, CI once saw a measurement for
busyness greater than the intended batch_duration!

v2: Go back to starting pmu sampling outside of spinner; the GPU should
be idle.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104241
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 tests/perf_pmu.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
index db7696115..38fd05dc9 100644
--- a/tests/perf_pmu.c
+++ b/tests/perf_pmu.c
@@ -103,7 +103,7 @@ static void pmu_read_multi(int fd, unsigned int num, uint64_t *val)
 	igt_assert_f((double)(x) <= (1.0 + (tolerance)) * (double)(ref) && \
 		     (double)(x) >= (1.0 - (tolerance)) * (double)(ref), \
 		     "'%s' != '%s' (%f not within %f%% tolerance of %f)\n",\
-		     #x, #ref, (double)(x), (tolerance) * 100.0, (double)ref)
+		     #x, #ref, (double)(x), (tolerance) * 100.0, (double)(ref))
 
 /*
  * Helper for cases where we assert on time spent sleeping (directly or
@@ -133,30 +133,28 @@ static unsigned int e2ring(int gem_fd, const struct intel_execution_engine2 *e)
 static void
 single(int gem_fd, const struct intel_execution_engine2 *e, bool busy)
 {
-	double ref = busy ? batch_duration_ns : 0.0f;
+	unsigned long slept;
 	igt_spin_t *spin;
 	uint64_t val;
 	int fd;
 
 	fd = open_pmu(I915_PMU_ENGINE_BUSY(e->class, e->instance));
 
-	if (busy) {
+	if (busy)
 		spin = igt_spin_batch_new(gem_fd, 0, e2ring(gem_fd, e), 0);
-		igt_spin_batch_set_timeout(spin, batch_duration_ns);
-	} else {
-		usleep(batch_duration_ns / 1000);
-	}
+	else
+		spin = NULL;
 
-	if (busy)
-		gem_sync(gem_fd, spin->handle);
+	slept = measured_usleep(batch_duration_ns / 1000);
+	igt_spin_batch_end(spin);
 
 	val = pmu_read_single(fd);
 
-	if (busy)
-		igt_spin_batch_free(gem_fd, spin);
+	igt_spin_batch_free(gem_fd, spin);
 	close(fd);
 
-	assert_within_epsilon(val, ref, tolerance);
+	assert_within_epsilon(val, busy ? slept : 0.f, tolerance);
+	gem_quiescent_gpu(gem_fd);
 }
 
 static void log_busy(int fd, unsigned int num_engines, uint64_t *val)
-- 
2.15.1

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

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

* [PATCH igt 2/5] igt/perf_pmu: Tighten measurements for most-busy
  2017-12-22 11:03 [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement Chris Wilson
@ 2017-12-22 11:03 ` Chris Wilson
  2017-12-22 13:21   ` Tvrtko Ursulin
  2017-12-22 11:03 ` [PATCH igt 3/5] igt/perf_pmu: Measure the reference batch for busy-check-all Chris Wilson
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Chris Wilson @ 2017-12-22 11:03 UTC (permalink / raw)
  To: intel-gfx

Create all the spinners before starting the sampler and then measure how
long we sleep.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104160
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 tests/perf_pmu.c | 45 +++++++++++++++++++++++++--------------------
 1 file changed, 25 insertions(+), 20 deletions(-)

diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
index 38fd05dc9..96091b853 100644
--- a/tests/perf_pmu.c
+++ b/tests/perf_pmu.c
@@ -228,53 +228,58 @@ most_busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
 	const struct intel_execution_engine2 *e_;
 	uint64_t val[num_engines];
 	int fd[num_engines];
-	igt_spin_t *spin[num_engines];
+	unsigned long slept;
+	igt_spin_t *spin = NULL;
 	unsigned int idle_idx, i;
 
 	gem_require_engine(gem_fd, e->class, e->instance);
 
 	i = 0;
-	fd[0] = -1;
 	for_each_engine_class_instance(fd, e_) {
 		if (!gem_has_engine(gem_fd, e_->class, e_->instance))
 			continue;
 
-		fd[i] = open_group(I915_PMU_ENGINE_BUSY(e_->class,
-							e_->instance),
-				   fd[0]);
-
 		if (e == e_) {
 			idle_idx = i;
+		} else if (spin) {
+			struct drm_i915_gem_exec_object2 obj = {
+				.handle = spin->handle
+			};
+			struct drm_i915_gem_execbuffer2 eb = {
+				.buffer_count = 1,
+				.buffers_ptr = to_user_pointer(&obj),
+				.flags = e2ring(gem_fd, e_),
+			};
+			gem_execbuf(gem_fd, &eb);
 		} else {
-			spin[i] = igt_spin_batch_new(gem_fd, 0,
-						     e2ring(gem_fd, e_), 0);
-			igt_spin_batch_set_timeout(spin[i], batch_duration_ns);
+			spin = igt_spin_batch_new(gem_fd, 0,
+						  e2ring(gem_fd, e_), 0);
 		}
 
-		i++;
+		val[i++] = I915_PMU_ENGINE_BUSY(e_->class, e_->instance);
 	}
+	igt_assert(i == num_engines);
 
-	for (i = 0; i < num_engines; i++) {
-		if (i != idle_idx)
-			gem_sync(gem_fd, spin[i]->handle);
-	}
+	fd[0] = -1;
+	for (i = 0; i < num_engines; i++)
+		fd[i] = open_group(val[i], fd[0]);
+
+	slept = measured_usleep(batch_duration_ns / 1000);
+	igt_spin_batch_end(spin);
 
 	pmu_read_multi(fd[0], num_engines, val);
 	log_busy(fd[0], num_engines, val);
 
-	for (i = 0; i < num_engines; i++) {
-		if (i != idle_idx)
-			igt_spin_batch_free(gem_fd, spin[i]);
-	}
+	igt_spin_batch_free(gem_fd, spin);
 	close(fd[0]);
 
 	for (i = 0; i < num_engines; i++) {
 		if (i == idle_idx)
 			assert_within_epsilon(val[i], 0.0f, tolerance);
 		else
-			assert_within_epsilon(val[i], batch_duration_ns,
-					      tolerance);
+			assert_within_epsilon(val[i], slept, tolerance);
 	}
+	gem_quiescent_gpu(gem_fd);
 }
 
 static void
-- 
2.15.1

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

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

* [PATCH igt 3/5] igt/perf_pmu: Measure the reference batch for busy-check-all
  2017-12-22 11:03 [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement Chris Wilson
  2017-12-22 11:03 ` [PATCH igt 2/5] igt/perf_pmu: Tighten measurements for most-busy Chris Wilson
@ 2017-12-22 11:03 ` Chris Wilson
  2017-12-22 13:22   ` Tvrtko Ursulin
  2017-12-22 11:03 ` [PATCH igt 4/5] igt/perf_pmu: Measure the reference batch for all-busy-check-all Chris Wilson
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Chris Wilson @ 2017-12-22 11:03 UTC (permalink / raw)
  To: intel-gfx

Don't rely on the timer being precise when we can sleep for a known
duration.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 tests/perf_pmu.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
index 96091b853..b3b289656 100644
--- a/tests/perf_pmu.c
+++ b/tests/perf_pmu.c
@@ -183,6 +183,7 @@ busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
 	const struct intel_execution_engine2 *e_;
 	uint64_t val[num_engines];
 	int fd[num_engines];
+	unsigned long slept;
 	igt_spin_t *spin;
 	unsigned int busy_idx, i;
 
@@ -202,9 +203,8 @@ busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
 	igt_assert_eq(i, num_engines);
 
 	spin = igt_spin_batch_new(gem_fd, 0, e2ring(gem_fd, e), 0);
-	igt_spin_batch_set_timeout(spin, batch_duration_ns);
-
-	gem_sync(gem_fd, spin->handle);
+	slept = measured_usleep(batch_duration_ns / 1000);
+	igt_spin_batch_end(spin);
 
 	pmu_read_multi(fd[0], num_engines, val);
 	log_busy(fd[0], num_engines, val);
@@ -212,13 +212,13 @@ busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
 	igt_spin_batch_free(gem_fd, spin);
 	close(fd[0]);
 
-	assert_within_epsilon(val[busy_idx], batch_duration_ns, tolerance);
+	assert_within_epsilon(val[busy_idx], slept, tolerance);
 	for (i = 0; i < num_engines; i++) {
 		if (i == busy_idx)
 			continue;
 		assert_within_epsilon(val[i], 0.0f, tolerance);
 	}
-
+	gem_quiescent_gpu(gem_fd);
 }
 
 static void
-- 
2.15.1

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

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

* [PATCH igt 4/5] igt/perf_pmu: Measure the reference batch for all-busy-check-all
  2017-12-22 11:03 [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement Chris Wilson
  2017-12-22 11:03 ` [PATCH igt 2/5] igt/perf_pmu: Tighten measurements for most-busy Chris Wilson
  2017-12-22 11:03 ` [PATCH igt 3/5] igt/perf_pmu: Measure the reference batch for busy-check-all Chris Wilson
@ 2017-12-22 11:03 ` Chris Wilson
  2017-12-22 13:24   ` Tvrtko Ursulin
  2017-12-22 11:03 ` [PATCH igt 5/5] igt/perf_pmu: Speed up frequency measurement Chris Wilson
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Chris Wilson @ 2017-12-22 11:03 UTC (permalink / raw)
  To: intel-gfx

Don't rely on the timer being precise when we can sleep for a known
duration.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 tests/perf_pmu.c | 38 ++++++++++++++++++++++++++------------
 1 file changed, 26 insertions(+), 12 deletions(-)

diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
index b3b289656..d88287c17 100644
--- a/tests/perf_pmu.c
+++ b/tests/perf_pmu.c
@@ -288,36 +288,50 @@ all_busy_check_all(int gem_fd, const unsigned int num_engines)
 	const struct intel_execution_engine2 *e;
 	uint64_t val[num_engines];
 	int fd[num_engines];
-	igt_spin_t *spin[num_engines];
+	unsigned long slept;
+	igt_spin_t *spin = NULL;
 	unsigned int i;
 
 	i = 0;
-	fd[0] = -1;
 	for_each_engine_class_instance(fd, e) {
 		if (!gem_has_engine(gem_fd, e->class, e->instance))
 			continue;
 
-		fd[i] = open_group(I915_PMU_ENGINE_BUSY(e->class, e->instance),
-				   fd[0]);
-
-		spin[i] = igt_spin_batch_new(gem_fd, 0, e2ring(gem_fd, e), 0);
-		igt_spin_batch_set_timeout(spin[i], batch_duration_ns);
+		if (spin) {
+			struct drm_i915_gem_exec_object2 obj = {
+				.handle = spin->handle
+			};
+			struct drm_i915_gem_execbuffer2 eb = {
+				.buffer_count = 1,
+				.buffers_ptr = to_user_pointer(&obj),
+				.flags = e2ring(gem_fd, e),
+			};
+			gem_execbuf(gem_fd, &eb);
+		} else {
+			spin = igt_spin_batch_new(gem_fd, 0,
+						  e2ring(gem_fd, e), 0);
+		}
 
-		i++;
+		val[i++] = I915_PMU_ENGINE_BUSY(e->class, e->instance);
 	}
+	igt_assert(i == num_engines);
 
+	fd[0] = -1;
 	for (i = 0; i < num_engines; i++)
-		gem_sync(gem_fd, spin[i]->handle);
+		fd[i] = open_group(val[i], fd[0]);
+
+	slept = measured_usleep(batch_duration_ns / 1000);
+	igt_spin_batch_end(spin);
 
 	pmu_read_multi(fd[0], num_engines, val);
 	log_busy(fd[0], num_engines, val);
 
-	for (i = 0; i < num_engines; i++)
-		igt_spin_batch_free(gem_fd, spin[i]);
+	igt_spin_batch_free(gem_fd, spin);
 	close(fd[0]);
 
 	for (i = 0; i < num_engines; i++)
-		assert_within_epsilon(val[i], batch_duration_ns, tolerance);
+		assert_within_epsilon(val[i], slept, tolerance);
+	gem_quiescent_gpu(gem_fd);
 }
 
 static void
-- 
2.15.1

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

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

* [PATCH igt 5/5] igt/perf_pmu: Speed up frequency measurement
  2017-12-22 11:03 [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement Chris Wilson
                   ` (2 preceding siblings ...)
  2017-12-22 11:03 ` [PATCH igt 4/5] igt/perf_pmu: Measure the reference batch for all-busy-check-all Chris Wilson
@ 2017-12-22 11:03 ` Chris Wilson
  2017-12-22 13:27   ` Tvrtko Ursulin
  2017-12-22 12:33 ` ✓ Fi.CI.BAT: success for series starting with [1/5] igt/perf_pmu: Tighten busy measurement Patchwork
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Chris Wilson @ 2017-12-22 11:03 UTC (permalink / raw)
  To: intel-gfx

Use the normal batch_duration_ns and display the sampled frequency:

	Frequency: min=100, max=750, boost=750 MHz
	Min frequency: requested 100.0, actual 100.0
	Max frequency: requested 755.6, actual 755.6

v2: Remove the early spin_batch_end and assert the measured frequencies
are within tolerance of our target.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 tests/perf_pmu.c | 39 +++++++++++++++++++++++----------------
 1 file changed, 23 insertions(+), 16 deletions(-)

diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
index d88287c17..eb8791cd4 100644
--- a/tests/perf_pmu.c
+++ b/tests/perf_pmu.c
@@ -931,9 +931,10 @@ test_interrupts(int gem_fd)
 static void
 test_frequency(int gem_fd)
 {
-	const uint64_t duration_ns = 2e9;
 	uint32_t min_freq, max_freq, boost_freq;
-	uint64_t min[2], max[2], start[2];
+	uint64_t val[2], start[2];
+	double min[2], max[2];
+	unsigned long slept;
 	igt_spin_t *spin;
 	int fd, sysfs;
 
@@ -962,17 +963,18 @@ test_frequency(int gem_fd)
 	igt_require(igt_sysfs_set_u32(sysfs, "gt_boost_freq_mhz", min_freq));
 	igt_require(igt_sysfs_get_u32(sysfs, "gt_boost_freq_mhz") == min_freq);
 
+	gem_quiescent_gpu(gem_fd); /* Idle to be sure the change takes effect */
+	spin = igt_spin_batch_new(gem_fd, 0, I915_EXEC_RENDER, 0);
 	pmu_read_multi(fd, 2, start);
 
-	spin = igt_spin_batch_new(gem_fd, 0, I915_EXEC_RENDER, 0);
-	igt_spin_batch_set_timeout(spin, duration_ns);
-	gem_sync(gem_fd, spin->handle);
+	slept = measured_usleep(batch_duration_ns / 1000);
 
-	pmu_read_multi(fd, 2, min);
-	min[0] -= start[0];
-	min[1] -= start[1];
+	pmu_read_multi(fd, 2, val);
+	min[0] = 1e9*(val[0] - start[0]) / slept;
+	min[1] = 1e9*(val[1] - start[1]) / slept;
 
 	igt_spin_batch_free(gem_fd, spin);
+	gem_quiescent_gpu(gem_fd); /* Don't leak busy bo into the next phase */
 
 	usleep(1e6);
 
@@ -987,17 +989,18 @@ test_frequency(int gem_fd)
 	igt_require(igt_sysfs_set_u32(sysfs, "gt_min_freq_mhz", max_freq));
 	igt_require(igt_sysfs_get_u32(sysfs, "gt_min_freq_mhz") == max_freq);
 
+	gem_quiescent_gpu(gem_fd);
+	spin = igt_spin_batch_new(gem_fd, 0, I915_EXEC_RENDER, 0);
 	pmu_read_multi(fd, 2, start);
 
-	spin = igt_spin_batch_new(gem_fd, 0, I915_EXEC_RENDER, 0);
-	igt_spin_batch_set_timeout(spin, duration_ns);
-	gem_sync(gem_fd, spin->handle);
+	slept = measured_usleep(batch_duration_ns / 1000);
 
-	pmu_read_multi(fd, 2, max);
-	max[0] -= start[0];
-	max[1] -= start[1];
+	pmu_read_multi(fd, 2, val);
+	max[0] = 1e9*(val[0] - start[0]) / slept;
+	max[1] = 1e9*(val[1] - start[1]) / slept;
 
 	igt_spin_batch_free(gem_fd, spin);
+	gem_quiescent_gpu(gem_fd);
 
 	/*
 	 * Restore min/max.
@@ -1008,8 +1011,12 @@ test_frequency(int gem_fd)
 			 min_freq, igt_sysfs_get_u32(sysfs, "gt_min_freq_mhz"));
 	close(fd);
 
-	igt_assert(min[0] < max[0]);
-	igt_assert(min[1] < max[1]);
+	igt_info("Min frequency: requested %.1f, actual %.1f\n",
+		 min[0], min[1]);
+	igt_info("Max frequency: requested %.1f, actual %.1f\n",
+		 max[0], max[1]);
+	assert_within_epsilon(min[0], min_freq, tolerance);
+	assert_within_epsilon(max[0], max_freq, tolerance);
 }
 
 static bool wait_for_rc6(int fd)
-- 
2.15.1

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

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

* ✓ Fi.CI.BAT: success for series starting with [1/5] igt/perf_pmu: Tighten busy measurement
  2017-12-22 11:03 [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement Chris Wilson
                   ` (3 preceding siblings ...)
  2017-12-22 11:03 ` [PATCH igt 5/5] igt/perf_pmu: Speed up frequency measurement Chris Wilson
@ 2017-12-22 12:33 ` Patchwork
  2017-12-22 13:18 ` [PATCH igt 1/5] " Tvrtko Ursulin
  2017-12-22 13:49 ` ✓ Fi.CI.IGT: success for series starting with [1/5] " Patchwork
  6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2017-12-22 12:33 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/5] igt/perf_pmu: Tighten busy measurement
URL   : https://patchwork.freedesktop.org/series/35715/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
865a47ca2b93b208ba016f3c4fc00831ec7bfec6 overlay: parse tracepoints from sysfs to figure out fields' location

with latest DRM-Tip kernel build CI_DRM_3568
e9f603bfd61b drm-tip: 2017y-12m-22d-11h-13m-33s UTC integration manifest

No testlist changes.

Test debugfs_test:
        Subgroup read_all_entries:
                dmesg-fail -> DMESG-WARN (fi-elk-e7500) fdo#103989
                incomplete -> PASS       (fi-snb-2520m) fdo#103713
Test gem_ringfill:
        Subgroup basic-default-hang:
                pass       -> DMESG-WARN (fi-pnv-d510) fdo#101600

fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#101600 https://bugs.freedesktop.org/show_bug.cgi?id=101600

fi-bdw-5557u     total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  time:436s
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:440s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:382s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:505s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:276s
fi-bxt-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:497s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:496s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:484s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:482s
fi-elk-e7500     total:224  pass:163  dwarn:15  dfail:0   fail:0   skip:45 
fi-gdg-551       total:288  pass:179  dwarn:0   dfail:0   fail:1   skip:108 time:265s
fi-glk-1         total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:532s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:406s
fi-hsw-4770r     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:415s
fi-ilk-650       total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  time:426s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:482s
fi-ivb-3770      total:288  pass:255  dwarn:0   dfail:0   fail:0   skip:33  time:428s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:483s
fi-kbl-7560u     total:288  pass:268  dwarn:1   dfail:0   fail:0   skip:19  time:520s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:466s
fi-kbl-r         total:288  pass:260  dwarn:1   dfail:0   fail:0   skip:27  time:523s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:580s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:447s
fi-skl-6600u     total:288  pass:260  dwarn:1   dfail:0   fail:0   skip:27  time:533s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:554s
fi-skl-6700k2    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:510s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:512s
fi-skl-gvtdvm    total:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  time:443s
fi-snb-2520m     total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:552s
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:419s
Blacklisted hosts:
fi-cfl-s2        total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:599s
fi-cnl-y         total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:631s
fi-glk-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:484s

== Logs ==

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

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

* Re: [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement
  2017-12-22 11:03 [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement Chris Wilson
                   ` (4 preceding siblings ...)
  2017-12-22 12:33 ` ✓ Fi.CI.BAT: success for series starting with [1/5] igt/perf_pmu: Tighten busy measurement Patchwork
@ 2017-12-22 13:18 ` Tvrtko Ursulin
  2017-12-22 13:49 ` ✓ Fi.CI.IGT: success for series starting with [1/5] " Patchwork
  6 siblings, 0 replies; 12+ messages in thread
From: Tvrtko Ursulin @ 2017-12-22 13:18 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


On 22/12/2017 11:03, Chris Wilson wrote:
> Sleep for a known duration. In particular, CI once saw a measurement for
> busyness greater than the intended batch_duration!
> 
> v2: Go back to starting pmu sampling outside of spinner; the GPU should
> be idle.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104241
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>   tests/perf_pmu.c | 22 ++++++++++------------
>   1 file changed, 10 insertions(+), 12 deletions(-)
> 
> diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
> index db7696115..38fd05dc9 100644
> --- a/tests/perf_pmu.c
> +++ b/tests/perf_pmu.c
> @@ -103,7 +103,7 @@ static void pmu_read_multi(int fd, unsigned int num, uint64_t *val)
>   	igt_assert_f((double)(x) <= (1.0 + (tolerance)) * (double)(ref) && \
>   		     (double)(x) >= (1.0 - (tolerance)) * (double)(ref), \
>   		     "'%s' != '%s' (%f not within %f%% tolerance of %f)\n",\
> -		     #x, #ref, (double)(x), (tolerance) * 100.0, (double)ref)
> +		     #x, #ref, (double)(x), (tolerance) * 100.0, (double)(ref))
>   
>   /*
>    * Helper for cases where we assert on time spent sleeping (directly or
> @@ -133,30 +133,28 @@ static unsigned int e2ring(int gem_fd, const struct intel_execution_engine2 *e)
>   static void
>   single(int gem_fd, const struct intel_execution_engine2 *e, bool busy)
>   {
> -	double ref = busy ? batch_duration_ns : 0.0f;
> +	unsigned long slept;
>   	igt_spin_t *spin;
>   	uint64_t val;
>   	int fd;
>   
>   	fd = open_pmu(I915_PMU_ENGINE_BUSY(e->class, e->instance));
>   
> -	if (busy) {
> +	if (busy)
>   		spin = igt_spin_batch_new(gem_fd, 0, e2ring(gem_fd, e), 0);
> -		igt_spin_batch_set_timeout(spin, batch_duration_ns);
> -	} else {
> -		usleep(batch_duration_ns / 1000);
> -	}
> +	else
> +		spin = NULL;
>   
> -	if (busy)
> -		gem_sync(gem_fd, spin->handle);
> +	slept = measured_usleep(batch_duration_ns / 1000);
> +	igt_spin_batch_end(spin);
>   
>   	val = pmu_read_single(fd);
>   
> -	if (busy)
> -		igt_spin_batch_free(gem_fd, spin);
> +	igt_spin_batch_free(gem_fd, spin);
>   	close(fd);
>   
> -	assert_within_epsilon(val, ref, tolerance);
> +	assert_within_epsilon(val, busy ? slept : 0.f, tolerance);
> +	gem_quiescent_gpu(gem_fd);
>   }
>   
>   static void log_busy(int fd, unsigned int num_engines, uint64_t *val)
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko

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

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

* Re: [PATCH igt 2/5] igt/perf_pmu: Tighten measurements for most-busy
  2017-12-22 11:03 ` [PATCH igt 2/5] igt/perf_pmu: Tighten measurements for most-busy Chris Wilson
@ 2017-12-22 13:21   ` Tvrtko Ursulin
  0 siblings, 0 replies; 12+ messages in thread
From: Tvrtko Ursulin @ 2017-12-22 13:21 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


On 22/12/2017 11:03, Chris Wilson wrote:
> Create all the spinners before starting the sampler and then measure how
> long we sleep.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104160
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>   tests/perf_pmu.c | 45 +++++++++++++++++++++++++--------------------
>   1 file changed, 25 insertions(+), 20 deletions(-)
> 
> diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
> index 38fd05dc9..96091b853 100644
> --- a/tests/perf_pmu.c
> +++ b/tests/perf_pmu.c
> @@ -228,53 +228,58 @@ most_busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
>   	const struct intel_execution_engine2 *e_;
>   	uint64_t val[num_engines];
>   	int fd[num_engines];
> -	igt_spin_t *spin[num_engines];
> +	unsigned long slept;
> +	igt_spin_t *spin = NULL;
>   	unsigned int idle_idx, i;
>   
>   	gem_require_engine(gem_fd, e->class, e->instance);
>   
>   	i = 0;
> -	fd[0] = -1;
>   	for_each_engine_class_instance(fd, e_) {
>   		if (!gem_has_engine(gem_fd, e_->class, e_->instance))
>   			continue;
>   
> -		fd[i] = open_group(I915_PMU_ENGINE_BUSY(e_->class,
> -							e_->instance),
> -				   fd[0]);
> -
>   		if (e == e_) {
>   			idle_idx = i;
> +		} else if (spin) {
> +			struct drm_i915_gem_exec_object2 obj = {
> +				.handle = spin->handle
> +			};
> +			struct drm_i915_gem_execbuffer2 eb = {
> +				.buffer_count = 1,
> +				.buffers_ptr = to_user_pointer(&obj),
> +				.flags = e2ring(gem_fd, e_),
> +			};
> +			gem_execbuf(gem_fd, &eb);

Evil.

>   		} else {
> -			spin[i] = igt_spin_batch_new(gem_fd, 0,
> -						     e2ring(gem_fd, e_), 0);
> -			igt_spin_batch_set_timeout(spin[i], batch_duration_ns);
> +			spin = igt_spin_batch_new(gem_fd, 0,
> +						  e2ring(gem_fd, e_), 0);
>   		}
>   
> -		i++;
> +		val[i++] = I915_PMU_ENGINE_BUSY(e_->class, e_->instance);
>   	}
> +	igt_assert(i == num_engines);
>   
> -	for (i = 0; i < num_engines; i++) {
> -		if (i != idle_idx)
> -			gem_sync(gem_fd, spin[i]->handle);
> -	}
> +	fd[0] = -1;
> +	for (i = 0; i < num_engines; i++)
> +		fd[i] = open_group(val[i], fd[0]);
> +
> +	slept = measured_usleep(batch_duration_ns / 1000);
> +	igt_spin_batch_end(spin);
>   
>   	pmu_read_multi(fd[0], num_engines, val);
>   	log_busy(fd[0], num_engines, val);
>   
> -	for (i = 0; i < num_engines; i++) {
> -		if (i != idle_idx)
> -			igt_spin_batch_free(gem_fd, spin[i]);
> -	}
> +	igt_spin_batch_free(gem_fd, spin);
>   	close(fd[0]);
>   
>   	for (i = 0; i < num_engines; i++) {
>   		if (i == idle_idx)
>   			assert_within_epsilon(val[i], 0.0f, tolerance);
>   		else
> -			assert_within_epsilon(val[i], batch_duration_ns,
> -					      tolerance);
> +			assert_within_epsilon(val[i], slept, tolerance);
>   	}
> +	gem_quiescent_gpu(gem_fd);
>   }
>   
>   static void
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

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

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

* Re: [PATCH igt 3/5] igt/perf_pmu: Measure the reference batch for busy-check-all
  2017-12-22 11:03 ` [PATCH igt 3/5] igt/perf_pmu: Measure the reference batch for busy-check-all Chris Wilson
@ 2017-12-22 13:22   ` Tvrtko Ursulin
  0 siblings, 0 replies; 12+ messages in thread
From: Tvrtko Ursulin @ 2017-12-22 13:22 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


On 22/12/2017 11:03, Chris Wilson wrote:
> Don't rely on the timer being precise when we can sleep for a known
> duration.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>   tests/perf_pmu.c | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
> index 96091b853..b3b289656 100644
> --- a/tests/perf_pmu.c
> +++ b/tests/perf_pmu.c
> @@ -183,6 +183,7 @@ busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
>   	const struct intel_execution_engine2 *e_;
>   	uint64_t val[num_engines];
>   	int fd[num_engines];
> +	unsigned long slept;
>   	igt_spin_t *spin;
>   	unsigned int busy_idx, i;
>   
> @@ -202,9 +203,8 @@ busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
>   	igt_assert_eq(i, num_engines);
>   
>   	spin = igt_spin_batch_new(gem_fd, 0, e2ring(gem_fd, e), 0);
> -	igt_spin_batch_set_timeout(spin, batch_duration_ns);
> -
> -	gem_sync(gem_fd, spin->handle);
> +	slept = measured_usleep(batch_duration_ns / 1000);
> +	igt_spin_batch_end(spin);
>   
>   	pmu_read_multi(fd[0], num_engines, val);
>   	log_busy(fd[0], num_engines, val);
> @@ -212,13 +212,13 @@ busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
>   	igt_spin_batch_free(gem_fd, spin);
>   	close(fd[0]);
>   
> -	assert_within_epsilon(val[busy_idx], batch_duration_ns, tolerance);
> +	assert_within_epsilon(val[busy_idx], slept, tolerance);
>   	for (i = 0; i < num_engines; i++) {
>   		if (i == busy_idx)
>   			continue;
>   		assert_within_epsilon(val[i], 0.0f, tolerance);
>   	}
> -
> +	gem_quiescent_gpu(gem_fd);
>   }
>   
>   static void
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

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

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

* Re: [PATCH igt 4/5] igt/perf_pmu: Measure the reference batch for all-busy-check-all
  2017-12-22 11:03 ` [PATCH igt 4/5] igt/perf_pmu: Measure the reference batch for all-busy-check-all Chris Wilson
@ 2017-12-22 13:24   ` Tvrtko Ursulin
  0 siblings, 0 replies; 12+ messages in thread
From: Tvrtko Ursulin @ 2017-12-22 13:24 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


On 22/12/2017 11:03, Chris Wilson wrote:
> Don't rely on the timer being precise when we can sleep for a known
> duration.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>   tests/perf_pmu.c | 38 ++++++++++++++++++++++++++------------
>   1 file changed, 26 insertions(+), 12 deletions(-)
> 
> diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
> index b3b289656..d88287c17 100644
> --- a/tests/perf_pmu.c
> +++ b/tests/perf_pmu.c
> @@ -288,36 +288,50 @@ all_busy_check_all(int gem_fd, const unsigned int num_engines)
>   	const struct intel_execution_engine2 *e;
>   	uint64_t val[num_engines];
>   	int fd[num_engines];
> -	igt_spin_t *spin[num_engines];
> +	unsigned long slept;
> +	igt_spin_t *spin = NULL;
>   	unsigned int i;
>   
>   	i = 0;
> -	fd[0] = -1;
>   	for_each_engine_class_instance(fd, e) {
>   		if (!gem_has_engine(gem_fd, e->class, e->instance))
>   			continue;
>   
> -		fd[i] = open_group(I915_PMU_ENGINE_BUSY(e->class, e->instance),
> -				   fd[0]);
> -
> -		spin[i] = igt_spin_batch_new(gem_fd, 0, e2ring(gem_fd, e), 0);
> -		igt_spin_batch_set_timeout(spin[i], batch_duration_ns);
> +		if (spin) {
> +			struct drm_i915_gem_exec_object2 obj = {
> +				.handle = spin->handle
> +			};
> +			struct drm_i915_gem_execbuffer2 eb = {
> +				.buffer_count = 1,
> +				.buffers_ptr = to_user_pointer(&obj),
> +				.flags = e2ring(gem_fd, e),
> +			};
> +			gem_execbuf(gem_fd, &eb);
> +		} else {
> +			spin = igt_spin_batch_new(gem_fd, 0,
> +						  e2ring(gem_fd, e), 0);
> +		}
>   
> -		i++;
> +		val[i++] = I915_PMU_ENGINE_BUSY(e->class, e->instance);
>   	}
> +	igt_assert(i == num_engines);
>   
> +	fd[0] = -1;
>   	for (i = 0; i < num_engines; i++)
> -		gem_sync(gem_fd, spin[i]->handle);
> +		fd[i] = open_group(val[i], fd[0]);
> +
> +	slept = measured_usleep(batch_duration_ns / 1000);
> +	igt_spin_batch_end(spin);
>   
>   	pmu_read_multi(fd[0], num_engines, val);
>   	log_busy(fd[0], num_engines, val);
>   
> -	for (i = 0; i < num_engines; i++)
> -		igt_spin_batch_free(gem_fd, spin[i]);
> +	igt_spin_batch_free(gem_fd, spin);
>   	close(fd[0]);
>   
>   	for (i = 0; i < num_engines; i++)
> -		assert_within_epsilon(val[i], batch_duration_ns, tolerance);
> +		assert_within_epsilon(val[i], slept, tolerance);
> +	gem_quiescent_gpu(gem_fd);
>   }
>   
>   static void
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

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

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

* Re: [PATCH igt 5/5] igt/perf_pmu: Speed up frequency measurement
  2017-12-22 11:03 ` [PATCH igt 5/5] igt/perf_pmu: Speed up frequency measurement Chris Wilson
@ 2017-12-22 13:27   ` Tvrtko Ursulin
  0 siblings, 0 replies; 12+ messages in thread
From: Tvrtko Ursulin @ 2017-12-22 13:27 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


On 22/12/2017 11:03, Chris Wilson wrote:
> Use the normal batch_duration_ns and display the sampled frequency:
> 
> 	Frequency: min=100, max=750, boost=750 MHz
> 	Min frequency: requested 100.0, actual 100.0
> 	Max frequency: requested 755.6, actual 755.6
> 
> v2: Remove the early spin_batch_end and assert the measured frequencies
> are within tolerance of our target.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>   tests/perf_pmu.c | 39 +++++++++++++++++++++++----------------
>   1 file changed, 23 insertions(+), 16 deletions(-)
> 
> diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
> index d88287c17..eb8791cd4 100644
> --- a/tests/perf_pmu.c
> +++ b/tests/perf_pmu.c
> @@ -931,9 +931,10 @@ test_interrupts(int gem_fd)
>   static void
>   test_frequency(int gem_fd)
>   {
> -	const uint64_t duration_ns = 2e9;
>   	uint32_t min_freq, max_freq, boost_freq;
> -	uint64_t min[2], max[2], start[2];
> +	uint64_t val[2], start[2];
> +	double min[2], max[2];
> +	unsigned long slept;
>   	igt_spin_t *spin;
>   	int fd, sysfs;
>   
> @@ -962,17 +963,18 @@ test_frequency(int gem_fd)
>   	igt_require(igt_sysfs_set_u32(sysfs, "gt_boost_freq_mhz", min_freq));
>   	igt_require(igt_sysfs_get_u32(sysfs, "gt_boost_freq_mhz") == min_freq);
>   
> +	gem_quiescent_gpu(gem_fd); /* Idle to be sure the change takes effect */
> +	spin = igt_spin_batch_new(gem_fd, 0, I915_EXEC_RENDER, 0);
>   	pmu_read_multi(fd, 2, start);
>   
> -	spin = igt_spin_batch_new(gem_fd, 0, I915_EXEC_RENDER, 0);
> -	igt_spin_batch_set_timeout(spin, duration_ns);
> -	gem_sync(gem_fd, spin->handle);
> +	slept = measured_usleep(batch_duration_ns / 1000);
>   
> -	pmu_read_multi(fd, 2, min);
> -	min[0] -= start[0];
> -	min[1] -= start[1];
> +	pmu_read_multi(fd, 2, val);
> +	min[0] = 1e9*(val[0] - start[0]) / slept;
> +	min[1] = 1e9*(val[1] - start[1]) / slept;
>   
>   	igt_spin_batch_free(gem_fd, spin);
> +	gem_quiescent_gpu(gem_fd); /* Don't leak busy bo into the next phase */
>   
>   	usleep(1e6);
>   
> @@ -987,17 +989,18 @@ test_frequency(int gem_fd)
>   	igt_require(igt_sysfs_set_u32(sysfs, "gt_min_freq_mhz", max_freq));
>   	igt_require(igt_sysfs_get_u32(sysfs, "gt_min_freq_mhz") == max_freq);
>   
> +	gem_quiescent_gpu(gem_fd);
> +	spin = igt_spin_batch_new(gem_fd, 0, I915_EXEC_RENDER, 0);
>   	pmu_read_multi(fd, 2, start);
>   
> -	spin = igt_spin_batch_new(gem_fd, 0, I915_EXEC_RENDER, 0);
> -	igt_spin_batch_set_timeout(spin, duration_ns);
> -	gem_sync(gem_fd, spin->handle);
> +	slept = measured_usleep(batch_duration_ns / 1000);
>   
> -	pmu_read_multi(fd, 2, max);
> -	max[0] -= start[0];
> -	max[1] -= start[1];
> +	pmu_read_multi(fd, 2, val);
> +	max[0] = 1e9*(val[0] - start[0]) / slept;
> +	max[1] = 1e9*(val[1] - start[1]) / slept;
>   
>   	igt_spin_batch_free(gem_fd, spin);
> +	gem_quiescent_gpu(gem_fd);
>   
>   	/*
>   	 * Restore min/max.
> @@ -1008,8 +1011,12 @@ test_frequency(int gem_fd)
>   			 min_freq, igt_sysfs_get_u32(sysfs, "gt_min_freq_mhz"));
>   	close(fd);
>   
> -	igt_assert(min[0] < max[0]);
> -	igt_assert(min[1] < max[1]);
> +	igt_info("Min frequency: requested %.1f, actual %.1f\n",
> +		 min[0], min[1]);
> +	igt_info("Max frequency: requested %.1f, actual %.1f\n",
> +		 max[0], max[1]);
> +	assert_within_epsilon(min[0], min_freq, tolerance);
> +	assert_within_epsilon(max[0], max_freq, tolerance);
>   }
>   
>   static bool wait_for_rc6(int fd)
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

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

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

* ✓ Fi.CI.IGT: success for series starting with [1/5] igt/perf_pmu: Tighten busy measurement
  2017-12-22 11:03 [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement Chris Wilson
                   ` (5 preceding siblings ...)
  2017-12-22 13:18 ` [PATCH igt 1/5] " Tvrtko Ursulin
@ 2017-12-22 13:49 ` Patchwork
  6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2017-12-22 13:49 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/5] igt/perf_pmu: Tighten busy measurement
URL   : https://patchwork.freedesktop.org/series/35715/
State : success

== Summary ==

Test kms_frontbuffer_tracking:
        Subgroup fbc-1p-offscren-pri-shrfb-draw-blt:
                fail       -> PASS       (shard-snb) fdo#101623 +1
        Subgroup fbc-rgb565-draw-render:
                skip       -> FAIL       (shard-snb) fdo#103167
Test kms_flip:
        Subgroup flip-vs-panning-vs-hang-interruptible:
                pass       -> DMESG-WARN (shard-snb) fdo#103821
        Subgroup modeset-vs-vblank-race-interruptible:
                pass       -> DMESG-FAIL (shard-hsw) fdo#103060
Test kms_draw_crc:
        Subgroup draw-method-xrgb2101010-mmap-gtt-untiled:
                incomplete -> PASS       (shard-hsw)
Test perf:
        Subgroup blocking:
                fail       -> PASS       (shard-hsw) fdo#102252
Test kms_setmode:
        Subgroup basic:
                fail       -> PASS       (shard-hsw) fdo#99912

fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#103821 https://bugs.freedesktop.org/show_bug.cgi?id=103821
fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912

shard-hsw        total:2712 pass:1537 dwarn:1   dfail:1   fail:9   skip:1164 time:9411s
shard-snb        total:2712 pass:1309 dwarn:2   dfail:0   fail:11  skip:1390 time:8128s
Blacklisted hosts:
shard-apl        total:2712 pass:1683 dwarn:1   dfail:0   fail:27  skip:1001 time:13724s
shard-kbl        total:2712 pass:1802 dwarn:1   dfail:0   fail:28  skip:881 time:11050s

== Logs ==

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

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

end of thread, other threads:[~2017-12-22 13:49 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-22 11:03 [PATCH igt 1/5] igt/perf_pmu: Tighten busy measurement Chris Wilson
2017-12-22 11:03 ` [PATCH igt 2/5] igt/perf_pmu: Tighten measurements for most-busy Chris Wilson
2017-12-22 13:21   ` Tvrtko Ursulin
2017-12-22 11:03 ` [PATCH igt 3/5] igt/perf_pmu: Measure the reference batch for busy-check-all Chris Wilson
2017-12-22 13:22   ` Tvrtko Ursulin
2017-12-22 11:03 ` [PATCH igt 4/5] igt/perf_pmu: Measure the reference batch for all-busy-check-all Chris Wilson
2017-12-22 13:24   ` Tvrtko Ursulin
2017-12-22 11:03 ` [PATCH igt 5/5] igt/perf_pmu: Speed up frequency measurement Chris Wilson
2017-12-22 13:27   ` Tvrtko Ursulin
2017-12-22 12:33 ` ✓ Fi.CI.BAT: success for series starting with [1/5] igt/perf_pmu: Tighten busy measurement Patchwork
2017-12-22 13:18 ` [PATCH igt 1/5] " Tvrtko Ursulin
2017-12-22 13:49 ` ✓ Fi.CI.IGT: success for series starting with [1/5] " 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.