[igt-dev] [PATCH i-g-t 1/3] runner: Log when watchdog handling fails
Arkadiusz Hiler
arkadiusz.hiler at intel.com
Fri Jun 14 08:08:14 UTC 2019
If write or ioctl on a watchdog ever fails it will be logged.
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
---
runner/executor.c | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/runner/executor.c b/runner/executor.c
index 7e5fbe8f..f9c69fef 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -25,6 +25,17 @@ static struct {
size_t num_dogs;
} watchdogs;
+static void __close_watchdog(int fd)
+{
+ int ret = write(fd, "V", 1);
+
+ if (ret == -1)
+ fprintf(stderr, "Failed to stop a watchdog: %s\n",
+ strerror(errno));
+
+ close(fd);
+}
+
static void close_watchdogs(struct settings *settings)
{
size_t i;
@@ -33,8 +44,7 @@ static void close_watchdogs(struct settings *settings)
printf("Closing watchdogs\n");
for (i = 0; i < watchdogs.num_dogs; i++) {
- write(watchdogs.fds[i], "V", 1);
- close(watchdogs.fds[i]);
+ __close_watchdog(watchdogs.fds[i]);
}
}
@@ -81,8 +91,7 @@ static int watchdogs_set_timeout(int timeout)
for (i = 0; i < watchdogs.num_dogs; i++) {
if (ioctl(watchdogs.fds[i], WDIOC_SETTIMEOUT, &timeout)) {
- write(watchdogs.fds[i], "V", 1);
- close(watchdogs.fds[i]);
+ __close_watchdog(watchdogs.fds[i]);
watchdogs.fds[i] = -1;
continue;
}
@@ -102,9 +111,14 @@ static int watchdogs_set_timeout(int timeout)
static void ping_watchdogs(void)
{
size_t i;
+ int ret;
for (i = 0; i < watchdogs.num_dogs; i++) {
- ioctl(watchdogs.fds[i], WDIOC_KEEPALIVE, 0);
+ ret = ioctl(watchdogs.fds[i], WDIOC_KEEPALIVE, NULL);
+
+ if (ret == -1)
+ fprintf(stderr, "Failed to ping a watchdog: %s\n",
+ strerror(errno));
}
}
--
2.21.0
More information about the igt-dev
mailing list