From: Lyude <lyude@redhat.com>
To: intel-gfx@lists.freedesktop.org
Cc: Lyude <lyude@redhat.com>
Subject: [RFC i-g-t v3 2/5] igt_aux: Add igt_set_autoresume_delay()
Date: Wed, 30 Nov 2016 20:24:45 -0500 [thread overview]
Message-ID: <20161201012448.16334-3-lyude@redhat.com> (raw)
In-Reply-To: <20161201012448.16334-1-lyude@redhat.com>
The default autoresume delay is about 5 seconds. It's possible on a
system that's not very fast this might not be a long enough time, since
an asynchronous hotplug event we scheduled on the chamelium that was
intended to happen during suspend could happen before we actually manage
to suspend. So, add a function that allows us to increase the autoresume
time to ensure this never happens during suspend/resume tests with the
chamelium.
Signed-off-by: Lyude <lyude@redhat.com>
Changes since v1:
- Use igt_require, not assert
---
lib/igt_aux.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
lib/igt_aux.h | 1 +
2 files changed, 47 insertions(+)
diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index ce2f245..babec57 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -801,6 +801,52 @@ void igt_system_suspend_autoresume(enum igt_suspend_state state,
close(power_dir);
}
+static int original_autoresume_delay;
+
+static void igt_restore_autoresume_delay(int sig)
+{
+ int delay_fd;
+ char delay_str[10];
+
+ igt_require((delay_fd = open("/sys/module/suspend/parameters/pm_test_delay",
+ O_WRONLY)) >= 0);
+
+ snprintf(delay_str, sizeof(delay_str), "%d", original_autoresume_delay);
+ igt_require(write(delay_fd, delay_str, strlen(delay_str)));
+
+ close(delay_fd);
+}
+
+/**
+ * igt_set_autoresume_delay:
+ * @delay_secs: The delay in seconds before resuming the system
+ *
+ * Sets how long we wait to resume the system after suspending it, using the
+ * suspend.pm_test_delay variable. On exit, the original delay value is
+ * restored.
+ */
+void igt_set_autoresume_delay(int delay_secs)
+{
+ int delay_fd;
+ char delay_str[10];
+
+ igt_skip_on_simulation();
+
+ igt_require((delay_fd = open("/sys/module/suspend/parameters/pm_test_delay",
+ O_RDWR)) >= 0);
+
+ if (!original_autoresume_delay) {
+ igt_require(read(delay_fd, delay_str, sizeof(delay_str)));
+ original_autoresume_delay = atoi(delay_str);
+ igt_install_exit_handler(igt_restore_autoresume_delay);
+ }
+
+ snprintf(delay_str, sizeof(delay_str), "%d", delay_secs);
+ igt_require(write(delay_fd, delay_str, strlen(delay_str)));
+
+ close(delay_fd);
+}
+
/**
* igt_drop_root:
*
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index 41903c2..2c58abc 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -185,6 +185,7 @@ void igt_skip_without_suspend_support(enum igt_suspend_state state,
enum igt_suspend_test test);
void igt_system_suspend_autoresume(enum igt_suspend_state state,
enum igt_suspend_test test);
+void igt_set_autoresume_delay(int delay_secs);
/* dropping priviledges */
void igt_drop_root(void);
--
2.9.3
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-12-01 1:24 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-01 1:24 [RFC i-g-t v3 0/5] Add support for the Chamelium Lyude
2016-12-01 1:24 ` [RFC i-g-t v3 1/5] igt_aux: Add igt_skip_without_suspend_support() Lyude
2016-12-01 1:24 ` Lyude [this message]
2016-12-01 1:24 ` [RFC i-g-t v3 3/5] igt_kms: Add helpers for watching for sysfs hotplug events Lyude
2016-12-01 1:24 ` [RFC i-g-t v3 4/5] igt_debugfs: Make igt_crc_to_string() work with other CRC types Lyude
2016-12-01 1:24 ` [RFC i-g-t v3 5/5] Add support for hotplug testing with the Chamelium Lyude
2016-12-07 11:27 ` Tomeu Vizoso
2016-12-07 19:56 ` Lyude Paul
2016-12-08 7:51 ` Tomeu Vizoso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161201012448.16334-3-lyude@redhat.com \
--to=lyude@redhat.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.