[igt-dev] [PATCH i-g-t] lib/igt_pm: Adjust pm status check timeout and log timing

Sujaritha sujaritha.sundaresan at intel.com
Mon Mar 9 15:57:32 UTC 2020


On 3/6/20 9:28 AM, don.hiatt at intel.com wrote:
> From: Don Hiatt <don.hiatt at intel.com>
>
> Increase the overall time we wait to achieve the desired runtime
> status to 15 seconds to fix an occasional timeout and do so
> in 1 second increments to speed up exiting. Also log the
> amount of time we waited to get a handle on how much variation
> we run into.
>
> Signed-off-by: Don Hiatt <don.hiatt at intel.com>
> ---
>   lib/igt_pm.c | 18 +++++++++++++-----
>   1 file changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/lib/igt_pm.c b/lib/igt_pm.c
> index 9d441e1b76ff..13675fca0c9d 100644
> --- a/lib/igt_pm.c
> +++ b/lib/igt_pm.c
> @@ -747,8 +747,8 @@ static const char *_pm_status_name(enum igt_runtime_pm_status status)
>    * igt_wait_for_pm_status:
>    * @status: desired runtime PM status
>    *
> - * Waits until for the driver to switch to into the desired runtime PM status,
> - * with a 10 second timeout.
> + * Waits for the driver to switch into the desired runtime PM status,
> + * with up to a 15 second timeout in 1 second increments.
>    *
>    * Returns:
>    * True if the desired runtime PM status was attained, false if the operation
> @@ -758,7 +758,7 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
>   {
>   	enum igt_runtime_pm_status expected = status;
>   	bool ret;
> -	int fd;
> +	int fd, i;
>   
>   	if (__igt_pm_power < 0)
>   		return false;
> @@ -766,8 +766,16 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
>   	fd = openat(__igt_pm_power, "runtime_status", O_RDONLY);
>   	igt_assert_f(fd >= 0, "Can't open runtime_status\n");
>   
> -	ret = igt_wait((status = __igt_get_runtime_pm_status(fd)) == expected,
> -		       10000, 100);
> +	for (i=1; i < 16; ++i) {
> +		ret = igt_wait((status = __igt_get_runtime_pm_status(fd)) == expected,
> +				1000, 100);
> +
> +		if (ret) {
> +			igt_info("Got expected (%s) runtime pm status in %d second(s)\n",
> +				 _pm_status_name(expected), i);
> +			break;
> +		}
> +	}
>   	close(fd);
>   
>   	if (!ret)

Don, could you add the information about the tests issues that this 
helps to resolve to the commit message ?

Suja



More information about the igt-dev mailing list