public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t] lib/igt_pm: Adjust pm status check timeout and log timing
@ 2020-03-06 17:28 don.hiatt
  2020-03-06 19:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: don.hiatt @ 2020-03-06 17:28 UTC (permalink / raw)
  To: igt-dev

From: Don Hiatt <don.hiatt@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@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)
-- 
2.25.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 8+ messages in thread
* [igt-dev] [PATCH i-g-t] lib/igt_pm: Adjust pm status check timeout and log timing
@ 2020-03-10 17:09 don.hiatt
  2020-03-10 17:00 ` Chris Wilson
  0 siblings, 1 reply; 8+ messages in thread
From: don.hiatt @ 2020-03-10 17:09 UTC (permalink / raw)
  To: igt-dev

From: Don Hiatt <don.hiatt@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.

These changes will allow us to log more information on an
occassional timeout we are seeing when expecting the runtime
status to change, with the extra logs we hope to pinpoint the
race we suspect might be there. Also, on local runs we generally
see it only takes from 1-3 seconds so switching from a fixed
10 second timeout to a loop in 1 second increments will speed
things up for the majority of test runs.

v2: Update commit message

Signed-off-by: Don Hiatt <don.hiatt@intel.com>
Reviewed-by: Sujaritha Sundaresan <sujaritha.sundaresan@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)
-- 
2.25.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-03-10 17:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-06 17:28 [igt-dev] [PATCH i-g-t] lib/igt_pm: Adjust pm status check timeout and log timing don.hiatt
2020-03-06 19:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2020-03-06 22:14 ` [igt-dev] [PATCH i-g-t] " Sujaritha
2020-03-07 15:43 ` [igt-dev] ✗ Fi.CI.IGT: failure for " Patchwork
2020-03-09 15:57 ` [igt-dev] [PATCH i-g-t] " Sujaritha
  -- strict thread matches above, loose matches on Subject: below --
2020-03-10 17:09 don.hiatt
2020-03-10 17:00 ` Chris Wilson
2020-03-10 17:11   ` Hiatt, Don

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox