[PATCH i-g-t 2/3] test/i915/perf: debug traces
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Thu Dec 3 08:44:24 UTC 2020
---
tests/i915/perf.c | 47 ++++++++++++++++++++++++++++++++---------------
1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index f09431472..a5d814405 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -783,10 +783,21 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
uint32_t report_reason0, report_reason1;
uint32_t b;
uint32_t ref;
+ const char *failed_reason = NULL;
+
+#define fail_unless(cond) { \
+ if (!failed_reason && !(cond)) \
+ failed_reason = #cond ; \
+ }
+#define fail_unless_eq(a, b) { \
+ if (!failed_reason && ((a) != (b))) \
+ failed_reason = #a " != " # b; \
+ }
- igt_debug("report type: %s->%s\n",
- gen8_read_report_reason(oa_report0),
- gen8_read_report_reason(oa_report1));
+
+ igt_debug("report type: %s(%p)->%s(%p)\n",
+ gen8_read_report_reason(oa_report0), oa_report0,
+ gen8_read_report_reason(oa_report1), oa_report1);
freq = time_delta ? ((uint64_t)clock_delta * 1000) / time_delta : 0;
igt_debug("freq = %"PRIu64"\n", freq);
@@ -813,7 +824,7 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
continue;
igt_debug("A%d: delta = %"PRIu64"\n", j, delta);
- igt_assert(delta <= max_delta);
+ fail_unless(delta <= max_delta);
}
for (int j = 0; j < format.n_a; j++) {
@@ -828,7 +839,7 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
continue;
igt_debug("A%d: delta = %"PRIu32"\n", a_id, delta);
- igt_assert(delta <= max_delta);
+ fail_unless(delta <= max_delta);
}
/* The TestOa metric set defines all B counters to be a
@@ -838,45 +849,45 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
if (clock_delta > 0) {
b = rpt1_b[0] - rpt0_b[0];
igt_debug("B0: delta = %"PRIu32"\n", b);
- igt_assert_eq(b, 0);
+ fail_unless_eq(b, 0);
b = rpt1_b[1] - rpt0_b[1];
igt_debug("B1: delta = %"PRIu32"\n", b);
- igt_assert_eq(b, clock_delta);
+ fail_unless_eq(b, clock_delta);
b = rpt1_b[2] - rpt0_b[2];
igt_debug("B2: delta = %"PRIu32"\n", b);
- igt_assert_eq(b, clock_delta);
+ fail_unless_eq(b, clock_delta);
b = rpt1_b[3] - rpt0_b[3];
ref = clock_delta / 2;
igt_debug("B3: delta = %"PRIu32"\n", b);
- igt_assert(b >= ref - 1 && b <= ref + 1);
+ fail_unless(b >= ref - 1 && b <= ref + 1);
b = rpt1_b[4] - rpt0_b[4];
ref = clock_delta / 3;
igt_debug("B4: delta = %"PRIu32"\n", b);
- igt_assert(b >= ref - 1 && b <= ref + 1);
+ fail_unless(b >= ref - 1 && b <= ref + 1);
b = rpt1_b[5] - rpt0_b[5];
ref = clock_delta / 3;
igt_debug("B5: delta = %"PRIu32"\n", b);
- igt_assert(b >= ref - 1 && b <= ref + 1);
+ fail_unless(b >= ref - 1 && b <= ref + 1);
b = rpt1_b[6] - rpt0_b[6];
ref = clock_delta / 6;
igt_debug("B6: delta = %"PRIu32"\n", b);
- igt_assert(b >= ref - 1 && b <= ref + 1);
+ fail_unless(b >= ref - 1 && b <= ref + 1);
b = rpt1_b[7] - rpt0_b[7];
ref = clock_delta * 2 / 3;
igt_debug("B7: delta = %"PRIu32"\n", b);
- igt_assert(b >= ref - 1 && b <= ref + 1);
+ fail_unless(b >= ref - 1 && b <= ref + 1);
} else {
for (int j = 0; j < format.n_b; j++) {
b = rpt1_b[j] - rpt0_b[j];
igt_debug("B%i: delta = %"PRIu32"\n", j, b);
- igt_assert_eq(b, 0);
+ fail_unless_eq(b, 0);
}
}
}
@@ -890,8 +901,12 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
igt_debug("C%d: delta = %"PRIu32", max_delta=%"PRIu32"\n",
j, delta, max_delta);
- igt_assert(delta <= max_delta);
+ fail_unless(delta <= max_delta);
}
+
+ if (failed_reason)
+ igt_debug("Failure: %s\n", failed_reason);
+ igt_assert(!failed_reason);
}
static bool
@@ -2616,6 +2631,8 @@ test_non_zero_reason(void)
for (uint32_t offset = 0; offset < total_len; offset += header->size) {
header = (void *) (buf + offset);
+ igt_debug("report offset=%u/%u\n", offset, total_len);
+
switch (header->type) {
case DRM_I915_PERF_RECORD_OA_REPORT_LOST:
reports_lost++;
--
2.29.2
More information about the Intel-gfx-trybot
mailing list