[PATCH i-g-t] tests/kms_sysfs_edid_timing: Skip the first detect

Kamil Konieczny kamil.konieczny at linux.intel.com
Wed May 22 16:16:06 UTC 2024


Hi Khaled,
On 2024-05-17 at 17:33:45 -0700, Khaled Almahallawy wrote:
> It is observed in some chrome devices that the first detect take a
> long time due to PPS. In another device it was found the eDP panel
> misbehaving and keep sending multiple long HPD during PPS which
> trigger HPD storm warning. This first detect will always exceeds the
> THRESHOLD_PER_CONNECTOR and will cause the test to fail.
> 
> Avoid that by skipping the measurement for the first detect.
> Also adding more debug logs in the test and kernel to be able to
> correlate the results.
> 
> Fixes: VLK-52052, VLK-56861

Please do not write this in description.

Also look into CI report and reply to it, in replay cut it after
'Known' report begins.


> Cc: Swati Sharma <swati2.sharma at intel.com>
> Cc: Mark Yacoub <markyacoub at chromium.org>
> Cc: Shawn Lee <shawn.c.lee at intel.com>
> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> Signed-off-by: Khaled Almahallawy <khaled.almahallawy at intel.com>
> ---
>  tests/kms_sysfs_edid_timing.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/kms_sysfs_edid_timing.c b/tests/kms_sysfs_edid_timing.c
> index dbc66c876..b7832dd83 100644
> --- a/tests/kms_sysfs_edid_timing.c
> +++ b/tests/kms_sysfs_edid_timing.c
> @@ -50,7 +50,7 @@
>  #define THRESHOLD_PER_CONNECTOR		150
>  #define THRESHOLD_PER_CONNECTOR_MEAN	140
>  #define THRESHOLD_ALL_CONNECTORS_MEAN	100
> -#define CHECK_TIMES			15
> +#define CHECK_TIMES			16
>  
>  IGT_TEST_DESCRIPTION("This test checks the time it takes to reprobe each "
>  		     "connector and fails if either the time it takes for "
> @@ -89,15 +89,25 @@ igt_simple_main
>  		for (i = 0; i < CHECK_TIMES; i++) {
>  			struct timespec ts = {};
>  			int fd;
> +			uint64_t current;
>  
>  			if ((fd = open(path, O_WRONLY)) < 0)
>  				continue;
>  
> +			igt_kmsg(KMSG_DEBUG "%s: start detect\n", path);
------------^^^^^^^^
Why not igt_debug?

>  			igt_nsec_elapsed(&ts);
>  			igt_ignore_warn(write(fd, "detect\n", 7));
> -			igt_mean_add(&mean, igt_nsec_elapsed(&ts));
> -
> +			current = igt_nsec_elapsed(&ts);
> +			igt_kmsg(KMSG_DEBUG "%s: end detect\n", path);
------------^^^^^^^^
Same here, why not igt_debug?

>  			close(fd);
> +
> +			/* Skip first detect */
> +			if(i == 0)
--------------^
Add space after 'if', so it will be:
			if (i == 0)

You could use checkpatch.pl from Linux kernel to catch similar
problems.

Regards,
Kamil

> +				continue;
> +
> +			igt_mean_add(&mean, current);
> +			igt_debug("%s: i=%d current=%02fdms mean.max=%02fms mean.min=%02fms\n",
> +				de->d_name, i, current/1e6,  mean.max/1e6, mean.min/1e6);
>  		}
>  
>  		igt_debug("%s: mean.max %.2fns, %.2fus, %.2fms, "
> -- 
> 2.34.1
> 


More information about the igt-dev mailing list