]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Allow pausing and debugging all running instances
authorSasha Levin <levinsasha928@gmail.com>
Sun, 3 Jul 2011 15:38:10 +0000 (18:38 +0300)
committerPekka Enberg <penberg@kernel.org>
Sun, 3 Jul 2011 18:07:47 +0000 (21:07 +0300)
Add a 'kvm [debug,pause] all' command to allow pausing or debugging
all running guests on a host.

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/kvm-debug.c
tools/kvm/kvm-pause.c

index 432ae84c51db27e2b4dd16a5934cd699b1966b4e..676f3116217d769627b8a23bf64b9566d86dbd4b 100644 (file)
@@ -7,6 +7,11 @@
 #include <string.h>
 #include <signal.h>
 
+static void do_debug(const char *name, int pid)
+{
+       kill(pid, SIGQUIT);
+}
+
 int kvm_cmd_debug(int argc, const char **argv, const char *prefix)
 {
        int pid;
@@ -14,6 +19,11 @@ int kvm_cmd_debug(int argc, const char **argv, const char *prefix)
        if (argc != 1)
                die("Usage: kvm debug [instance name]\n");
 
+       if (strcmp(argv[0], "all") == 0) {
+               kvm__enumerate_instances(do_debug);
+               return 0;
+       }
+
        pid = kvm__get_pid_by_instance(argv[0]);
        if (pid < 0)
                die("Failed locating instance name");
index 0cb6f2908c9115d46d58e5057411383d2bc6f1dc..ea4f95d468fa6955047cba19d7838ee487e123d9 100644 (file)
@@ -7,6 +7,11 @@
 #include <kvm/kvm-pause.h>
 #include <kvm/kvm.h>
 
+static void do_pause(const char *name, int pid)
+{
+       kill(pid, SIGUSR2);
+}
+
 int kvm_cmd_pause(int argc, const char **argv, const char *prefix)
 {
        int pid;
@@ -14,6 +19,11 @@ int kvm_cmd_pause(int argc, const char **argv, const char *prefix)
        if (argc != 1)
                die("Usage: kvm debug [instance name]\n");
 
+       if (strcmp(argv[0], "all") == 0) {
+               kvm__enumerate_instances(do_pause);
+               return 0;
+       }
+
        pid = kvm__get_pid_by_instance(argv[0]);
        if (pid < 0)
                die("Failed locating instance name");