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

Sujaritha sujaritha.sundaresan at intel.com
Fri Mar 6 22:14:56 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)

We are still not sure as to why the status switch is taking longer now 
but having this change and allowing the

time to be logged, should help in further understanding this failure 
seen on various pm tests.


Reviewed-by : Sujaritha Sundaresan <sujaritha.sundaresan at intel.com>



More information about the igt-dev mailing list