All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions
@ 2020-01-28 18:38 Matthew Auld
  2020-01-28 18:54 ` Chris Wilson
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Matthew Auld @ 2020-01-28 18:38 UTC (permalink / raw)
  To: intel-gfx

Measure the memcpy bw between our CPU accessible regions, trying all
supported mapping combinations(WC, WB) across various sizes.

v2:
    use smaller sizes
    throw in memcpy32/memcpy64/memcpy_from_wc

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 .../drm/i915/selftests/i915_perf_selftests.h  |   1 +
 .../drm/i915/selftests/intel_memory_region.c  | 218 ++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/drivers/gpu/drm/i915/selftests/i915_perf_selftests.h b/drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
index 5a577a1332f5..3bf7f53e9924 100644
--- a/drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
+++ b/drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
@@ -17,3 +17,4 @@
  */
 selftest(engine_cs, intel_engine_cs_perf_selftests)
 selftest(blt, i915_gem_object_blt_perf_selftests)
+selftest(region, intel_memory_region_perf_selftests)
diff --git a/drivers/gpu/drm/i915/selftests/intel_memory_region.c b/drivers/gpu/drm/i915/selftests/intel_memory_region.c
index 3ef3620e0da5..2ae9e9a22ce2 100644
--- a/drivers/gpu/drm/i915/selftests/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/selftests/intel_memory_region.c
@@ -4,6 +4,7 @@
  */
 
 #include <linux/prime_numbers.h>
+#include <linux/sort.h>
 
 #include "../i915_selftest.h"
 
@@ -19,6 +20,7 @@
 #include "gem/selftests/mock_context.h"
 #include "gt/intel_engine_user.h"
 #include "gt/intel_gt.h"
+#include "i915_memcpy.h"
 #include "selftests/igt_flush_test.h"
 #include "selftests/i915_random.h"
 
@@ -572,6 +574,210 @@ static int igt_lmem_write_cpu(void *arg)
 	return err;
 }
 
+static const char *repr_type(u32 type)
+{
+	switch (type) {
+	case I915_MAP_WB:
+		return "WB";
+	case I915_MAP_WC:
+		return "WC";
+	}
+
+	return "";
+}
+
+static struct drm_i915_gem_object *
+create_region_for_mapping(struct intel_memory_region *mr, u64 size, u32 type,
+			  void **out_addr)
+{
+	struct drm_i915_gem_object *obj;
+	void *addr;
+
+	obj = i915_gem_object_create_region(mr, size, 0);
+	if (IS_ERR(obj))
+		return obj;
+
+	addr = i915_gem_object_pin_map(obj, type);
+	if (IS_ERR(addr)) {
+		i915_gem_object_put(obj);
+		if (PTR_ERR(addr) == -ENXIO)
+			return ERR_PTR(-ENODEV);
+		return addr;
+	}
+
+	*out_addr = addr;
+	return obj;
+}
+
+static int wrap_ktime_compare(const void *A, const void *B)
+{
+	const ktime_t *a = A, *b = B;
+
+	return ktime_compare(*a, *b);
+}
+
+static void igt_memcpy32(void *dst, const void *src, size_t size)
+{
+	u32 *tmp = dst;
+	const u32 *s = src;
+
+	size = size / sizeof(u32);
+	while (size--)
+		*tmp++ = *s++;
+}
+
+static void igt_memcpy64(void *dst, const void *src, size_t size)
+{
+	u64 *tmp = dst;
+	const u64 *s = src;
+
+	size = size / sizeof(u64);
+	while (size--)
+		*tmp++ = *s++;
+}
+
+static inline void igt_memcpy(void *dst, const void *src, size_t size)
+{
+	memcpy(dst, src, size);
+}
+
+static inline void igt_memcpy_from_wc(void *dst, const void *src, size_t size)
+{
+	i915_memcpy_from_wc(dst, src, size);
+}
+
+static int _perf_memcpy(struct intel_memory_region *src_mr,
+			struct intel_memory_region *dst_mr,
+			u64 size, u32 src_type, u32 dst_type)
+{
+	const struct {
+		const char *name;
+		void (*copy)(void *dst, const void *src, size_t size);
+		bool skip;
+	} tests[] = {
+		{
+			"memcpy32",
+			igt_memcpy32,
+		},
+		{
+			"memcpy64",
+			igt_memcpy64,
+		},
+		{
+			"memcpy",
+			igt_memcpy,
+		},
+		{
+			"memcpy_from_wc",
+			igt_memcpy_from_wc,
+			src_type != I915_MAP_WC || !i915_has_memcpy_from_wc(),
+		},
+	};
+	struct drm_i915_gem_object *src, *dst;
+	void *src_addr, *dst_addr;
+	int ret = 0;
+	int i;
+
+	src = create_region_for_mapping(src_mr, size, src_type, &src_addr);
+	if (IS_ERR(src)) {
+		ret = PTR_ERR(src);
+		goto out;
+	}
+
+	dst = create_region_for_mapping(dst_mr, size, dst_type, &dst_addr);
+	if (IS_ERR(dst)) {
+		ret = PTR_ERR(dst);
+		goto out_unpin_src;
+	}
+
+	for (i = 0; i < ARRAY_SIZE(tests); ++i) {
+		ktime_t t[5];
+		int pass;
+
+		if (tests[i].skip)
+			continue;
+
+		for (pass = 0; pass < ARRAY_SIZE(t); pass++) {
+			ktime_t t0, t1;
+
+			t0 = ktime_get();
+
+			tests[i].copy(dst_addr, src_addr, size);
+
+			t1 = ktime_get();
+			t[pass] = ktime_sub(t1, t0);
+		}
+
+		sort(t, ARRAY_SIZE(t), sizeof(*t), wrap_ktime_compare, NULL);
+		pr_info("%s src(%s, %s) -> dst(%s, %s) %s %llu KiB copy: %lld MiB/s\n",
+			__func__,
+			src_mr->name,
+			repr_type(src_type),
+			dst_mr->name,
+			repr_type(dst_type),
+			tests[i].name,
+			size >> 10,
+			div64_u64(mul_u32_u32(4 * size,
+					      1000 * 1000 * 1000),
+				  t[1] + 2 * t[2] + t[3]) >> 20);
+
+		cond_resched();
+	}
+
+	i915_gem_object_unpin_map(dst);
+	__i915_gem_object_put_pages(dst);
+
+	i915_gem_object_put(dst);
+out_unpin_src:
+	i915_gem_object_unpin_map(src);
+	__i915_gem_object_put_pages(src);
+
+	i915_gem_object_put(src);
+out:
+	if (ret == -ENODEV)
+		ret = 0;
+
+	return ret;
+}
+
+static int perf_memcpy(void *arg)
+{
+	struct drm_i915_private *i915 = arg;
+	static const u32 types[] = {
+		I915_MAP_WB,
+		I915_MAP_WC,
+	};
+	static const u32 sizes[] = {
+		SZ_4K,
+		SZ_64K,
+		SZ_4M,
+	};
+	struct intel_memory_region *src_mr, *dst_mr;
+	int src_id, dst_id;
+	int i, j, k;
+	int ret;
+
+	for_each_memory_region(src_mr, i915, src_id) {
+		for_each_memory_region(dst_mr, i915, dst_id) {
+			for (i = 0; i < ARRAY_SIZE(sizes); ++i) {
+				for (j = 0; j < ARRAY_SIZE(types); ++j) {
+					for (k = 0; k < ARRAY_SIZE(types); ++k) {
+						ret = _perf_memcpy(src_mr,
+								   dst_mr,
+								   sizes[i],
+								   types[j],
+								   types[k]);
+						if (ret)
+							return ret;
+					}
+				}
+			}
+		}
+	}
+
+	return 0;
+}
+
 int intel_memory_region_mock_selftests(void)
 {
 	static const struct i915_subtest tests[] = {
@@ -619,3 +825,15 @@ int intel_memory_region_live_selftests(struct drm_i915_private *i915)
 
 	return i915_live_subtests(tests, i915);
 }
+
+int intel_memory_region_perf_selftests(struct drm_i915_private *i915)
+{
+	static const struct i915_subtest tests[] = {
+		SUBTEST(perf_memcpy),
+	};
+
+	if (intel_gt_is_wedged(&i915->gt))
+		return 0;
+
+	return i915_live_subtests(tests, i915);
+}
-- 
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] 6+ messages in thread

* Re: [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions
  2020-01-28 18:38 [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions Matthew Auld
@ 2020-01-28 18:54 ` Chris Wilson
  2020-01-28 19:11   ` Chris Wilson
  2020-01-28 19:34 ` Chris Wilson
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Chris Wilson @ 2020-01-28 18:54 UTC (permalink / raw)
  To: Matthew Auld, intel-gfx

Quoting Matthew Auld (2020-01-28 18:38:06)
> Measure the memcpy bw between our CPU accessible regions, trying all
> supported mapping combinations(WC, WB) across various sizes.
> 
> v2:
>     use smaller sizes
>     throw in memcpy32/memcpy64/memcpy_from_wc
> 
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  .../drm/i915/selftests/i915_perf_selftests.h  |   1 +
>  .../drm/i915/selftests/intel_memory_region.c  | 218 ++++++++++++++++++
>  2 files changed, 219 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/selftests/i915_perf_selftests.h b/drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
> index 5a577a1332f5..3bf7f53e9924 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
> +++ b/drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
> @@ -17,3 +17,4 @@
>   */
>  selftest(engine_cs, intel_engine_cs_perf_selftests)
>  selftest(blt, i915_gem_object_blt_perf_selftests)
> +selftest(region, intel_memory_region_perf_selftests)
> diff --git a/drivers/gpu/drm/i915/selftests/intel_memory_region.c b/drivers/gpu/drm/i915/selftests/intel_memory_region.c
> index 3ef3620e0da5..2ae9e9a22ce2 100644
> --- a/drivers/gpu/drm/i915/selftests/intel_memory_region.c
> +++ b/drivers/gpu/drm/i915/selftests/intel_memory_region.c
> @@ -4,6 +4,7 @@
>   */
>  
>  #include <linux/prime_numbers.h>
> +#include <linux/sort.h>
>  
>  #include "../i915_selftest.h"
>  
> @@ -19,6 +20,7 @@
>  #include "gem/selftests/mock_context.h"
>  #include "gt/intel_engine_user.h"
>  #include "gt/intel_gt.h"
> +#include "i915_memcpy.h"
>  #include "selftests/igt_flush_test.h"
>  #include "selftests/i915_random.h"
>  
> @@ -572,6 +574,210 @@ static int igt_lmem_write_cpu(void *arg)
>         return err;
>  }
>  
> +static const char *repr_type(u32 type)
> +{
> +       switch (type) {
> +       case I915_MAP_WB:
> +               return "WB";
> +       case I915_MAP_WC:
> +               return "WC";
> +       }
> +
> +       return "";
> +}
> +
> +static struct drm_i915_gem_object *
> +create_region_for_mapping(struct intel_memory_region *mr, u64 size, u32 type,
> +                         void **out_addr)
> +{
> +       struct drm_i915_gem_object *obj;
> +       void *addr;
> +
> +       obj = i915_gem_object_create_region(mr, size, 0);
> +       if (IS_ERR(obj))
> +               return obj;
> +
> +       addr = i915_gem_object_pin_map(obj, type);
> +       if (IS_ERR(addr)) {
> +               i915_gem_object_put(obj);
> +               if (PTR_ERR(addr) == -ENXIO)
> +                       return ERR_PTR(-ENODEV);
> +               return addr;
> +       }
> +
> +       *out_addr = addr;
> +       return obj;
> +}
> +
> +static int wrap_ktime_compare(const void *A, const void *B)
> +{
> +       const ktime_t *a = A, *b = B;
> +
> +       return ktime_compare(*a, *b);
> +}
> +
> +static void igt_memcpy32(void *dst, const void *src, size_t size)
> +{
> +       u32 *tmp = dst;
> +       const u32 *s = src;
> +
> +       size = size / sizeof(u32);
> +       while (size--)
> +               *tmp++ = *s++;
> +}
> +
> +static void igt_memcpy64(void *dst, const void *src, size_t size)
> +{
> +       u64 *tmp = dst;
> +       const u64 *s = src;
> +
> +       size = size / sizeof(u64);
> +       while (size--)
> +               *tmp++ = *s++;

memcpy64 will do. I was mainly worrying about the effect of reps being
always on WC memory. So potentially bad memcpy, mediocre memcpy64 and
memcpy_from_wc should cover the possibilities.

Hmm. How about memcpy_long instead (that should give us x32/x64
agnosticism).

> +}
> +
> +static inline void igt_memcpy(void *dst, const void *src, size_t size)
> +{
> +       memcpy(dst, src, size);
> +}
> +
> +static inline void igt_memcpy_from_wc(void *dst, const void *src, size_t size)
> +{
> +       i915_memcpy_from_wc(dst, src, size);
> +}
> +
> +static int _perf_memcpy(struct intel_memory_region *src_mr,
> +                       struct intel_memory_region *dst_mr,
> +                       u64 size, u32 src_type, u32 dst_type)
> +{
> +       const struct {
> +               const char *name;
> +               void (*copy)(void *dst, const void *src, size_t size);
> +               bool skip;
> +       } tests[] = {
> +               {
> +                       "memcpy32",
> +                       igt_memcpy32,
> +               },
> +               {
> +                       "memcpy64",
> +                       igt_memcpy64,
> +               },
> +               {
> +                       "memcpy",
> +                       igt_memcpy,
> +               },
> +               {
> +                       "memcpy_from_wc",
> +                       igt_memcpy_from_wc,
> +                       src_type != I915_MAP_WC || !i915_has_memcpy_from_wc(),

Should be safe for any source mapping (at least according to
experiments), so just !i915_has_memcpy_from_wc.

> +               },
> +       };
> +       struct drm_i915_gem_object *src, *dst;
> +       void *src_addr, *dst_addr;
> +       int ret = 0;
> +       int i;
> +
> +       src = create_region_for_mapping(src_mr, size, src_type, &src_addr);
> +       if (IS_ERR(src)) {
> +               ret = PTR_ERR(src);
> +               goto out;
> +       }
> +
> +       dst = create_region_for_mapping(dst_mr, size, dst_type, &dst_addr);
> +       if (IS_ERR(dst)) {
> +               ret = PTR_ERR(dst);
> +               goto out_unpin_src;
> +       }
> +
> +       for (i = 0; i < ARRAY_SIZE(tests); ++i) {
> +               ktime_t t[5];
> +               int pass;
> +
> +               if (tests[i].skip)
> +                       continue;
> +
> +               for (pass = 0; pass < ARRAY_SIZE(t); pass++) {
> +                       ktime_t t0, t1;
> +
> +                       t0 = ktime_get();
> +
> +                       tests[i].copy(dst_addr, src_addr, size);
> +
> +                       t1 = ktime_get();
> +                       t[pass] = ktime_sub(t1, t0);
> +               }
> +
> +               sort(t, ARRAY_SIZE(t), sizeof(*t), wrap_ktime_compare, NULL);
> +               pr_info("%s src(%s, %s) -> dst(%s, %s) %s %llu KiB copy: %lld MiB/s\n",
> +                       __func__,
> +                       src_mr->name,
> +                       repr_type(src_type),
> +                       dst_mr->name,
> +                       repr_type(dst_type),
> +                       tests[i].name,
> +                       size >> 10,
> +                       div64_u64(mul_u32_u32(4 * size,
> +                                             1000 * 1000 * 1000),
> +                                 t[1] + 2 * t[2] + t[3]) >> 20);

Should this be >> 22 ? (20 /* to MiB */ + 2 /* for avergage */)

> +
> +               cond_resched();
> +       }
> +
> +       i915_gem_object_unpin_map(dst);
> +       __i915_gem_object_put_pages(dst);

put_pages() to speed up the reaping?

How about skipping that leaving it to the ordinary free to cleanup, and
flushing the free?

	object_unpin_map(dst);
	object_put(dst);

	object_unpin_map(src);
	object_put(src);

	i915_gem_drain_freed_objects();

> +
> +       i915_gem_object_put(dst);
> +out_unpin_src:
> +       i915_gem_object_unpin_map(src);
> +       __i915_gem_object_put_pages(src);
> +
> +       i915_gem_object_put(src);
> +out:
> +       if (ret == -ENODEV)
> +               ret = 0;
> +
> +       return ret;
> +}
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions
  2020-01-28 18:54 ` Chris Wilson
@ 2020-01-28 19:11   ` Chris Wilson
  0 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2020-01-28 19:11 UTC (permalink / raw)
  To: Matthew Auld, intel-gfx

Quoting Chris Wilson (2020-01-28 18:54:18)
> Quoting Matthew Auld (2020-01-28 18:38:06)
> > +               sort(t, ARRAY_SIZE(t), sizeof(*t), wrap_ktime_compare, NULL);
> > +               pr_info("%s src(%s, %s) -> dst(%s, %s) %s %llu KiB copy: %lld MiB/s\n",
> > +                       __func__,
> > +                       src_mr->name,
> > +                       repr_type(src_type),
> > +                       dst_mr->name,
> > +                       repr_type(dst_type),
> > +                       tests[i].name,
> > +                       size >> 10,
> > +                       div64_u64(mul_u32_u32(4 * size,
> > +                                             1000 * 1000 * 1000),
> > +                                 t[1] + 2 * t[2] + t[3]) >> 20);
> 
> Should this be >> 22 ? (20 /* to MiB */ + 2 /* for avergage */)

Ah, 4*size.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions
  2020-01-28 18:38 [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions Matthew Auld
  2020-01-28 18:54 ` Chris Wilson
@ 2020-01-28 19:34 ` Chris Wilson
  2020-01-29  1:44 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/selftests/perf: measure memcpy bw between regions (rev2) Patchwork
  2020-01-29  2:05 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
  3 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2020-01-28 19:34 UTC (permalink / raw)
  To: Matthew Auld, intel-gfx

Quoting Matthew Auld (2020-01-28 18:38:06)
> +               sort(t, ARRAY_SIZE(t), sizeof(*t), wrap_ktime_compare, NULL);
> +               pr_info("%s src(%s, %s) -> dst(%s, %s) %s %llu KiB copy: %lld MiB/s\n",

pr_info("%s src(%s, %s) -> dst(%s, %s) %14s %4llu KiB copy: %5lld MiB/s\n",

should make it line up and be a little less disorganised.

Exporting the results in a more convenient format than dmesg is a
problem to be solved at a later date.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/selftests/perf: measure memcpy bw between regions (rev2)
  2020-01-28 18:38 [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions Matthew Auld
  2020-01-28 18:54 ` Chris Wilson
  2020-01-28 19:34 ` Chris Wilson
@ 2020-01-29  1:44 ` Patchwork
  2020-01-29  2:05 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2020-01-29  1:44 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/selftests/perf: measure memcpy bw between regions (rev2)
URL   : https://patchwork.freedesktop.org/series/72621/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
d20c84c0e130 drm/i915/selftests/perf: measure memcpy bw between regions
-:242: WARNING:DEEP_INDENTATION: Too many leading tabs - consider code refactoring
#242: FILE: drivers/gpu/drm/i915/selftests/intel_memory_region.c:770:
+						if (ret)

total: 0 errors, 1 warnings, 0 checks, 243 lines checked

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

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

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/selftests/perf: measure memcpy bw between regions (rev2)
  2020-01-28 18:38 [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions Matthew Auld
                   ` (2 preceding siblings ...)
  2020-01-29  1:44 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/selftests/perf: measure memcpy bw between regions (rev2) Patchwork
@ 2020-01-29  2:05 ` Patchwork
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2020-01-29  2:05 UTC (permalink / raw)
  To: Matthew Auld; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/selftests/perf: measure memcpy bw between regions (rev2)
URL   : https://patchwork.freedesktop.org/series/72621/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7833 -> Patchwork_16306
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/index.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_parallel@fds:
    - fi-byt-n2820:       [PASS][1] -> [TIMEOUT][2] ([fdo#112271])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-byt-n2820/igt@gem_exec_parallel@fds.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-byt-n2820/igt@gem_exec_parallel@fds.html

  
#### Possible fixes ####

  * igt@gem_close_race@basic-threads:
    - fi-hsw-peppy:       [INCOMPLETE][3] ([i915#816]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-hsw-peppy/igt@gem_close_race@basic-threads.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-hsw-peppy/igt@gem_close_race@basic-threads.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-icl-u2:          [FAIL][5] ([fdo#103375]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-icl-u2/igt@gem_exec_suspend@basic-s3.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-icl-u2/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-icl-u2:          [FAIL][7] ([fdo#111550]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-icl-u2/igt@gem_exec_suspend@basic-s4-devices.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-icl-u2/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770r:       [DMESG-FAIL][9] ([i915#563]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-icl-guc:         [INCOMPLETE][11] ([i915#140]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-icl-guc/igt@i915_selftest@live_gem_contexts.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-icl-guc/igt@i915_selftest@live_gem_contexts.html

  
#### Warnings ####

  * igt@gem_exec_parallel@contexts:
    - fi-byt-n2820:       [TIMEOUT][13] ([fdo#112271]) -> [FAIL][14] ([i915#694])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-byt-n2820/igt@gem_exec_parallel@contexts.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-byt-n2820/igt@gem_exec_parallel@contexts.html

  * igt@i915_pm_rpm@basic-rte:
    - fi-kbl-guc:         [FAIL][15] ([i915#579]) -> [SKIP][16] ([fdo#109271])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-icl-u2:          [FAIL][17] ([fdo#103375]) -> [DMESG-WARN][18] ([IGT#4] / [i915#263])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7833/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16306/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html

  
  [IGT#4]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/4
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111550]: https://bugs.freedesktop.org/show_bug.cgi?id=111550
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
  [i915#263]: https://gitlab.freedesktop.org/drm/intel/issues/263
  [i915#563]: https://gitlab.freedesktop.org/drm/intel/issues/563
  [i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816


Participating hosts (50 -> 35)
------------------------------

  Missing    (15): fi-ilk-m540 fi-bdw-samus fi-kbl-7560u fi-byt-squawks fi-bsw-cyan fi-kbl-7500u fi-ctg-p8600 fi-byt-clapper fi-ivb-3770 fi-cfl-8109u fi-skl-6700k2 fi-blb-e6850 fi-bsw-kefka fi-skl-6600u fi-snb-2600 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7833 -> Patchwork_16306

  CI-20190529: 20190529
  CI_DRM_7833: 8210f0f999e2d396a8611e0cabc2f6c6a52468de @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5394: 991fd07bcd7add7a5beca2c95b72a994e62fbb75 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16306: d20c84c0e13065645fa82138503ceeb83767656b @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

d20c84c0e130 drm/i915/selftests/perf: measure memcpy bw between regions

== Logs ==

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

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

end of thread, other threads:[~2020-01-29  2:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-28 18:38 [Intel-gfx] [PATCH v2] drm/i915/selftests/perf: measure memcpy bw between regions Matthew Auld
2020-01-28 18:54 ` Chris Wilson
2020-01-28 19:11   ` Chris Wilson
2020-01-28 19:34 ` Chris Wilson
2020-01-29  1:44 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/selftests/perf: measure memcpy bw between regions (rev2) Patchwork
2020-01-29  2:05 ` [Intel-gfx] ✓ Fi.CI.BAT: success " 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.