Skip to contentSkip to conversation

Documentation/watchdog: add timeout and ping rate control to watchdog-test.c

PATCH In review Timur Tabi 1 participant 4 messages Jun 29, 2015 – Sep 3, 2015

Subsystems (2)
lore
Share & tools
lore

Timur Tabi

author
#0 lore raw

PATCH 1/1 Documentation/watchdog: add timeout and ping rate control to watchdog-test.c

The watchdog test program is much more useful if it can configure the timeout value and ping rate. This will allow you to test actual timeouts.

Adds the -t parameter to set the timeout value (in seconds), and -p to set the ping rate (number of seconds between pings).

---
 Documentation/watchdog/src/watchdog-test.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)
Documentation/watchdog/src/watchdog-test.c +17 -5
index 3da8229..fcdde8f 100644
@@ -41,6 +41,7 @@ static void term(int sig)
 int main(int argc, char *argv[])
 {
     int flags;
+    unsigned int ping_rate = 1;
 
     fd = open("/dev/watchdog", O_WRONLY);
 
@@ -63,22 +64,33 @@ int main(int argc, char *argv[])
 	    fprintf(stderr, "Watchdog card enabled.\n");
 	    fflush(stderr);
 	    goto end;
+	} else if (!strncasecmp(argv[1], "-t", 2) && argv[2]) {
+	    flags = atoi(argv[2]);
+	    ioctl(fd, WDIOC_SETTIMEOUT, &flags);
+	    fprintf(stderr, "Watchdog timeout set to %u seconds.\n", flags);
+	    fflush(stderr);
+	    goto end;
+	} else if (!strncasecmp(argv[1], "-p", 2) && argv[2]) {
+	    ping_rate = strtoul(argv[2], NULL, 0);
+	    fprintf(stderr, "Watchdog ping rate set to %u seconds.\n", ping_rate);
+	    fflush(stderr);
 	} else {
-	    fprintf(stderr, "-d to disable, -e to enable.\n");
+	    fprintf(stderr, "-d to disable, -e to enable, -t <n> to set " \
+		"the timeout,\n-p <n> to set the ping rate, and \n");
 	    fprintf(stderr, "run by itself to tick the card.\n");
 	    fflush(stderr);
 	    goto end;
 	}
-    } else {
-	fprintf(stderr, "Watchdog Ticking Away!\n");
-	fflush(stderr);
     }
 
+    fprintf(stderr, "Watchdog Ticking Away!\n");
+    fflush(stderr);
+
     signal(SIGINT, term);
 
     while(1) {
 	keep_alive();
-	sleep(1);
+	sleep(ping_rate);
     }
 end:
     close(fd);
Signature · 3 lines
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.
author
#1 lore raw
Quoted 7 lines · Timur Tabi

The watchdog test program is much more useful if it can configure the timeout value and ping rate. This will allow you to test actual timeouts.

Adds the -t parameter to set the timeout value (in seconds), and -p to set the ping rate (number of seconds between pings).

Wim, any chance of getting this patch into 4.2?

Signature · 3 lines
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.
author
#2 lore raw
Quoted 10 lines · Timur Tabi
Quoted 7 lines · Timur Tabi

The watchdog test program is much more useful if it can configure the timeout value and ping rate. This will allow you to test actual timeouts.

Adds the -t parameter to set the timeout value (in seconds), and -p to set the ping rate (number of seconds between pings).

Wim, any chance of getting this patch into 4.2?

Wim? If not 4.2, then 4.3? I think it's a pretty harmless patch, and it works well for us.

Signature · 3 lines
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.
author
#3 lore raw
In reply to Timur Tabi
Quoted 7 lines · Timur Tabi

The watchdog test program is much more useful if it can configure the timeout value and ping rate. This will allow you to test actual timeouts.

Adds the -t parameter to set the timeout value (in seconds), and -p to set the ping rate (number of seconds between pings).

Wim, can you take this patch for 4.3?

Signature · 3 lines
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.