If any of the perf tests run into 0 time, not only are we liable to
divide by zero, but the result would be highly questionable.
Nevertheless, let's not have a div-by-zero error.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
Cc: Andi Shyti <andi.sh...@intel.com>
Reviewed-by: Andi Shyti <andi.sh...@intel.com>
---
 .../drm/i915/selftests/intel_memory_region.c  | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/intel_memory_region.c 
b/drivers/gpu/drm/i915/selftests/intel_memory_region.c
index 75839db63bea..ce7adfa3bca0 100644
--- a/drivers/gpu/drm/i915/selftests/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/selftests/intel_memory_region.c
@@ -852,14 +852,22 @@ static int _perf_memcpy(struct intel_memory_region 
*src_mr,
                }
 
                sort(t, ARRAY_SIZE(t), sizeof(*t), wrap_ktime_compare, NULL);
+               if (t[0] <= 0) {
+                       /* ignore the impossible to protect our sanity */
+                       pr_debug("Skipping %s src(%s, %s) -> dst(%s, %s) %14s 
%4lluKiB copy, unstable measurement [%lld, %lld]\n",
+                                __func__,
+                                src_mr->name, repr_type(src_type),
+                                dst_mr->name, repr_type(dst_type),
+                                tests[i].name, size >> 10,
+                                t[0], t[4]);
+                       continue;
+               }
+
                pr_info("%s src(%s, %s) -> dst(%s, %s) %14s %4llu KiB copy: 
%5lld MiB/s\n",
                        __func__,
-                       src_mr->name,
-                       repr_type(src_type),
-                       dst_mr->name,
-                       repr_type(dst_type),
-                       tests[i].name,
-                       size >> 10,
+                       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);
-- 
2.20.1

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

Reply via email to