From 24e7dbbaf22da7de18276423e09a077bdf3a299d Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Sun, 3 Jul 2011 18:38:10 +0300 Subject: [PATCH] kvm tools: Allow pausing and debugging all running instances Add a 'kvm [debug,pause] all' command to allow pausing or debugging all running guests on a host. Signed-off-by: Sasha Levin Signed-off-by: Pekka Enberg --- kvm-debug.c | 10 ++++++++++ kvm-pause.c | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/kvm-debug.c b/kvm-debug.c index 432ae84..676f311 100644 --- a/kvm-debug.c +++ b/kvm-debug.c @@ -7,6 +7,11 @@ #include #include +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"); diff --git a/kvm-pause.c b/kvm-pause.c index 0cb6f29..ea4f95d 100644 --- a/kvm-pause.c +++ b/kvm-pause.c @@ -7,6 +7,11 @@ #include #include +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");