[igt-dev] [PATCH i-g-t v2] tests/kms_setmode: degrade assert to debug

Petri Latvala petri.latvala at intel.com
Fri Sep 16 10:59:38 UTC 2022


On Tue, Sep 13, 2022 at 11:08:55AM -0400, Hamza Mahfooz wrote:
> Unfortunately, there are too many sources of jitter that can cause the
> vblank interval approximation obtained from DRM_IOCTL_WAIT_VBLANK to be
> off by more than a scanline for this assert to be useful. So, to allow
> this test to pass consistently degrade the assert to a debug.
> 
> Signed-off-by: Hamza Mahfooz <hamza.mahfooz at amd.com>
> ---
> v2: fix logic
> ---
>  tests/kms_setmode.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c
> index bfa10891..58abfe14 100644
> --- a/tests/kms_setmode.c
> +++ b/tests/kms_setmode.c
> @@ -527,12 +527,12 @@ static void check_timings(int crtc_idx, const drmModeModeInfo *kmode)
>  	 * See:
>  	 * https://en.wikipedia.org/wiki/Standard_deviation#Rules_for_normally_distributed_data
>  	 */
> -	igt_assert_f(fabs(mean - expected) < max(line_time(kmode), 1.718 * stddev),
> -		     "vblank interval differs from modeline! expected %.1fus, measured %1.fus +- %.3fus, difference %.1fus (%.1f sigma, %.1f scanlines)\n",
> -		     expected, mean, stddev,
> -		     fabs(mean - expected),
> -		     fabs(mean - expected) / stddev,
> -		     fabs(mean - expected) / line_time(kmode));
> +	if (fabs(mean - expected) > max(line_time(kmode), 1.718 * stddev))
> +		igt_info("vblank interval differs from modeline! expected %.1fus, measured %1.fus +- %.3fus, difference %.1fus (%.1f sigma, %.1f scanlines)\n",
> +			 expected, mean, stddev,
> +			 fabs(mean - expected),
> +			 fabs(mean - expected) / stddev,
> +			 fabs(mean - expected) / line_time(kmode));
>  }


History has taught that having such messages in the logs are generally
useless. Without a mechanism to tell that the output has changed, it's
going to get missed and when you realize something is completely off,
figuring out when it changed is a ghost hunt.

In short, the action "to allow this test to pass" is effectively
deleting the test.

Having said that, deleting the test might be the right move. I said
people will miss changes if it's just a message, but it has been an
assertion failure for i915 CI for some time... But a consistent
one. The difference on SNB looks to be 2.5 scanlines, sometimes 2.1,
but most often 2.5.

Maybe Ville is able to comment? What's up with DRM_IOCTL_WAIT_VBLANK
timings, is this assert obsolete with today's kernel? Or does the test
need some kind of tuning?

-- 
Petri Latvala


More information about the igt-dev mailing list