From 9bf0e5c75f27824df65b2c71d1a82980cf43c2dd Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Wed, 10 Oct 2018 10:44:14 -0700 Subject: tests/perf: adapt report timing delta acceptance for ICL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The behavior of the OA unit is a tiny bit different on ICL. It appears to be a bit sloppier on the timings of its OA reports (missing the deadline by one period quite often). Let's add an acceptance delta. v2: Use larger acceptance delta only on ICL (José) Tweak indentation (José) Signed-off-by: Lionel Landwerlin Reviewed-by: José Roberto de Souza --- tests/perf.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'tests/perf.c') diff --git a/tests/perf.c b/tests/perf.c index 16c1adb0..4f09aef7 100644 --- a/tests/perf.c +++ b/tests/perf.c @@ -1674,6 +1674,19 @@ static void load_helper_fini(void) drm_intel_bufmgr_destroy(lh.bufmgr); } +static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta) +{ + /* + * On ICL, the OA unit appears to be a bit more relaxed about + * its timing for emitting OA reports (often missing the + * deadline by 1 timestamp). + */ + if (IS_ICELAKE(devid)) + return delta <= (expected_delta + 3); + else + return delta <= expected_delta; +} + static void test_oa_exponents(void) { @@ -1774,9 +1787,10 @@ test_oa_exponents(void) igt_debug("report%04i ts=%08x hw_id=0x%08x delta=%u %s\n", i, timer_reports[i].report[1], oa_report_get_ctx_id(timer_reports[i].report), - delta, delta == expected_timestamp_delta ? "" : "******"); + delta, expected_report_timing_delta(delta, + expected_timestamp_delta) ? "" : "******"); - matches += expected_timestamp_delta <= delta; + matches += expected_report_timing_delta(delta,expected_timestamp_delta); } igt_debug("matches=%u/%u\n", matches, n_timer_reports - 1); -- cgit v1.2.3