From: Andrii Anisov <andrii.anisov@globallogic.com>
To: embedded-pv-devel@lists.xenproject.org
Cc: Viktor Kleinik <viktor.kleinik@globallogic.com>, xen-devel@lists.xen.org
Subject: [PATCH RFC 07/18] tools/misc: Modify Xen watchdog daemon
Date: Wed, 18 May 2016 19:32:30 +0300 [thread overview]
Message-ID: <1463589161-4153-8-git-send-email-andrii.anisov@globallogic.com> (raw)
In-Reply-To: <1463589161-4153-1-git-send-email-andrii.anisov@globallogic.com>
From: Viktor Kleinik <viktor.kleinik@globallogic.com>
This change allows watchdog daemon to work thru watchdog device
on the file system.
Signed-off-by: Viktor Kleinik <viktor.kleinik@globallogic.com>
---
tools/misc/xenwatchdogd.c | 52 +++++++++++------------------------------------
1 file changed, 12 insertions(+), 40 deletions(-)
diff --git a/tools/misc/xenwatchdogd.c b/tools/misc/xenwatchdogd.c
index 254117b..4b27628 100644
--- a/tools/misc/xenwatchdogd.c
+++ b/tools/misc/xenwatchdogd.c
@@ -1,17 +1,17 @@
-
#include <err.h>
#include <limits.h>
-#include "xenctrl.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
-#include <signal.h>
#include <stdio.h>
+#include <sys/ioctl.h>
+#include <linux/watchdog.h>
+
+#define DEV_NAME "/dev/watchdog"
-xc_interface *h;
-int id = 0;
+int fd = -1;
void daemonize(void)
{
@@ -36,20 +36,6 @@ void daemonize(void)
err(1, "reopen stderr");
}
-void catch_exit(int sig)
-{
- if (id)
- xc_watchdog(h, id, 300);
- exit(0);
-}
-
-void catch_usr1(int sig)
-{
- if (id)
- xc_watchdog(h, id, 0);
- exit(0);
-}
-
int main(int argc, char **argv)
{
int t, s;
@@ -60,9 +46,9 @@ int main(int argc, char **argv)
daemonize();
- h = xc_interface_open(NULL, NULL, 0);
- if (h == NULL)
- err(1, "xc_interface_open");
+ fd = open(DEV_NAME, O_RDWR);
+ if (fd < 0)
+ err(1, "xenwatchdogd: Failed to open %s\n", DEV_NAME);
t = strtoul(argv[1], NULL, 0);
if (t == ULONG_MAX)
@@ -75,25 +61,11 @@ int main(int argc, char **argv)
err(1, "strtoul");
}
- if (signal(SIGHUP, &catch_exit) == SIG_ERR)
- err(1, "signal");
- if (signal(SIGINT, &catch_exit) == SIG_ERR)
- err(1, "signal");
- if (signal(SIGQUIT, &catch_exit) == SIG_ERR)
- err(1, "signal");
- if (signal(SIGTERM, &catch_exit) == SIG_ERR)
- err(1, "signal");
- if (signal(SIGUSR1, &catch_usr1) == SIG_ERR)
- err(1, "signal");
-
- id = xc_watchdog(h, 0, t);
- if (id <= 0)
- err(1, "xc_watchdog setup");
-
for (;;) {
+ ret = ioctl(fd, WDIOC_KEEPALIVE);
+ if (ret)
+ err(1, "xenwatchdogd: Failed to kick watchdog\n");
+
sleep(s);
- ret = xc_watchdog(h, id, t);
- if (ret != 0)
- err(1, "xc_watchdog");
}
}
--
2.8.2
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-05-18 16:32 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-18 16:32 [PATCH RFC 00/18] System adjustment to customer needs Andrii Anisov
2016-05-18 16:32 ` [PATCH RFC 01/18] xen/tools: Fix virtual disks helper scripts Andrii Anisov
2016-05-19 11:34 ` Wei Liu
2016-05-19 20:54 ` Andrii Anisov
2016-05-19 22:58 ` Wei Liu
2016-05-20 8:30 ` Andrii Anisov
2016-05-18 16:32 ` [PATCH RFC 02/18] kbdif: add raw events passing Andrii Anisov
2016-05-19 9:28 ` Jan Beulich
2016-05-18 16:32 ` [PATCH RFC 03/18] xen/arm: allow to allocate 1/128/256/512 Mb memory chunks Andrii Anisov
2016-05-19 11:10 ` Julien Grall
2016-05-18 16:32 ` [PATCH RFC 04/18] libxl: add ability to set rambase_pfn via cfg file Andrii Anisov
2016-05-19 11:34 ` Wei Liu
2016-05-19 11:36 ` Julien Grall
2016-05-18 16:32 ` [PATCH RFC 05/18] xen/arm: allow reassigning of hw interrupts to guest domain Andrii Anisov
2016-05-19 12:19 ` Julien Grall
2016-05-18 16:32 ` [PATCH RFC 06/18] libxl: parse config data during domain reboot Andrii Anisov
2016-05-19 11:35 ` Wei Liu
2016-05-18 16:32 ` Andrii Anisov [this message]
2016-05-19 11:35 ` [PATCH RFC 07/18] tools/misc: Modify Xen watchdog daemon Wei Liu
2016-05-18 16:32 ` [PATCH RFC 08/18] tools/misc: Set timeout value from " Andrii Anisov
2016-05-19 11:35 ` Wei Liu
2016-05-18 16:32 ` [PATCH RFC 09/18] tools: Allow to cross-compile xentop Andrii Anisov
2016-05-19 11:35 ` Wei Liu
2016-05-18 16:32 ` [PATCH RFC 10/18] xen: arm: add batch support to the XENMEM_p2m_lookup operation Andrii Anisov
2016-05-19 9:36 ` Jan Beulich
2016-05-18 16:32 ` [PATCH RFC 11/18] arm: Fix 1-to-1 Dom0 memory allocation of any size Andrii Anisov
2016-05-18 16:32 ` [PATCH RFC 12/18] libxl: Fix unneeded domain reboot during destroy routine Andrii Anisov
2016-05-19 11:35 ` Wei Liu
2016-05-18 16:32 ` [PATCH RFC 13/18] xen: introduce and use 'dom0_rambase_pfn' setting for kernel Dom0 Andrii Anisov
2016-05-19 9:41 ` Jan Beulich
2016-05-19 12:26 ` Julien Grall
2016-05-19 12:50 ` Jan Beulich
2016-05-19 13:39 ` Julien Grall
2016-05-19 13:58 ` Oleksandr Dmytryshyn
2016-05-19 14:34 ` Julien Grall
2016-05-20 8:39 ` Oleksandr Dmytryshyn
2016-05-19 14:36 ` Jan Beulich
2016-05-20 8:45 ` Oleksandr Dmytryshyn
2016-05-20 9:59 ` Jan Beulich
2016-05-20 14:19 ` Oleksandr Dmytryshyn
2016-05-20 15:04 ` Julien Grall
2016-05-20 16:05 ` Edgar E. Iglesias
2016-05-23 9:52 ` Oleksandr Dmytryshyn
2016-05-30 11:07 ` Stefano Stabellini
2016-05-31 14:04 ` Oleksandr Dmytryshyn
2016-06-01 14:01 ` Edgar E. Iglesias
2016-05-18 16:32 ` [PATCH RFC 14/18] xen: flask: Add possiblity to forward irqs into domU domains Andrii Anisov
2016-05-18 16:32 ` [PATCH RFC 15/18] arm: Add ability to relocate Xen in over 4GB space Andrii Anisov
2016-05-19 9:42 ` Jan Beulich
2016-05-19 13:53 ` Julien Grall
2016-05-24 17:18 ` Julien Grall
2016-05-18 16:32 ` [PATCH RFC 16/18] xen: Add dom0_mem_high option & over 4GB memory allocation for Dom0 Andrii Anisov
2016-05-18 16:32 ` [PATCH RFC 17/18] tools: Introduce ARM32_SEPAR_MEM_SPLIT option Andrii Anisov
2016-05-19 11:35 ` Wei Liu
2016-05-18 16:32 ` [PATCH RFC 18/18] arm: Add ability to allocate Xen heap in lowmem Andrii Anisov
2016-05-18 17:26 ` [PATCH RFC 00/18] System adjustment to customer needs Julien Grall
2016-05-19 19:45 ` Andrii Anisov
2016-05-18 19:17 ` [Embedded-pv-devel] " Meng Xu
2016-05-19 11:00 ` Julien Grall
2016-05-19 21:28 ` Andrii Anisov
2016-05-20 10:33 ` Julien Grall
2016-05-20 16:24 ` Andrii Anisov
2016-05-23 9:19 ` Julien Grall
2016-05-20 17:09 ` Andrii Anisov
2016-05-23 9:13 ` Julien Grall
2016-05-19 22:08 ` Andrii Anisov
2016-05-19 21:53 ` Andrii Anisov
2016-05-20 15:21 ` Meng Xu
2016-05-20 17:23 ` Andrii Anisov
2016-05-20 17:28 ` Meng Xu
2016-05-21 14:32 ` Julien Grall
2016-05-21 14:52 ` Meng Xu
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=1463589161-4153-8-git-send-email-andrii.anisov@globallogic.com \
--to=andrii.anisov@globallogic.com \
--cc=embedded-pv-devel@lists.xenproject.org \
--cc=viktor.kleinik@globallogic.com \
--cc=xen-devel@lists.xen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).