Commit-ID: 087f07b3f47472a962d99e6a7b89560cf3d39594 Gitweb: http://git.kernel.org/tip/087f07b3f47472a962d99e6a7b89560cf3d39594 Author: Sasha Levin <levinsasha928@xxxxxxxxx> AuthorDate: Sun, 7 Aug 2011 22:23:06 +0300 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Tue, 9 Aug 2011 16:46:54 +0300 kvm tools: Split 'kvm pause' and add 'kvm resume' This patch seperates 'kvm pause' into 'kvm pause' and 'kvm resume', 'kvm pause' no longer acts as a switch between running and paused state but instead just switches the instance into paused and reume is handled by the new 'kvm resume'. Signed-off-by: Sasha Levin <levinsasha928@xxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/Documentation/kvm-pause.txt | 4 +- .../Documentation/{kvm-stop.txt => kvm-resume.txt} | 8 +++--- tools/kvm/Makefile | 1 + tools/kvm/builtin-pause.c | 2 +- tools/kvm/{builtin-debug.c => builtin-resume.c} | 22 ++++++++++---------- tools/kvm/builtin-run.c | 7 ++++- tools/kvm/command-list.txt | 1 + tools/kvm/include/kvm/builtin-resume.h | 6 +++++ tools/kvm/include/kvm/kvm.h | 1 + tools/kvm/kvm-cmd.c | 2 + 10 files changed, 34 insertions(+), 20 deletions(-) diff --git a/tools/kvm/Documentation/kvm-pause.txt b/tools/kvm/Documentation/kvm-pause.txt index 773824f..770bcfe 100644 --- a/tools/kvm/Documentation/kvm-pause.txt +++ b/tools/kvm/Documentation/kvm-pause.txt @@ -3,7 +3,7 @@ kvm-pause(1) NAME ---- -kvm-pause - Pause/resume the virtual machine +kvm-pause - Pause the virtual machine SYNOPSIS -------- @@ -12,5 +12,5 @@ SYNOPSIS DESCRIPTION ----------- -The command pauses and resumes a virtual machine. +The command pauses a virtual machine. For a list of running instances see 'kvm list'. diff --git a/tools/kvm/Documentation/kvm-stop.txt b/tools/kvm/Documentation/kvm-resume.txt similarity index 52% copy from tools/kvm/Documentation/kvm-stop.txt copy to tools/kvm/Documentation/kvm-resume.txt index 5267081..918648e 100644 --- a/tools/kvm/Documentation/kvm-stop.txt +++ b/tools/kvm/Documentation/kvm-resume.txt @@ -1,16 +1,16 @@ -kvm-stop(1) +kvm-resume(1) ================ NAME ---- -kvm-stop - Stop a running instance +kvm-resume - Resume the virtual machine SYNOPSIS -------- [verse] -'kvm stop [instance]' +'kvm resume [instance]' DESCRIPTION ----------- -The command stops a running instance. +The command resumes a virtual machine. For a list of running instances see 'kvm list'. diff --git a/tools/kvm/Makefile b/tools/kvm/Makefile index 8d45ebf..672027d 100644 --- a/tools/kvm/Makefile +++ b/tools/kvm/Makefile @@ -25,6 +25,7 @@ OBJS += builtin-debug.o OBJS += builtin-help.o OBJS += builtin-list.o OBJS += builtin-pause.o +OBJS += builtin-resume.o OBJS += builtin-run.o OBJS += builtin-stop.o OBJS += builtin-version.o diff --git a/tools/kvm/builtin-pause.c b/tools/kvm/builtin-pause.c index 0c0010d..827b3b4 100644 --- a/tools/kvm/builtin-pause.c +++ b/tools/kvm/builtin-pause.c @@ -17,7 +17,7 @@ int kvm_cmd_pause(int argc, const char **argv, const char *prefix) int pid; if (argc != 1) - die("Usage: kvm debug [instance name]\n"); + die("Usage: kvm pause [instance name]\n"); if (strcmp(argv[0], "all") == 0) { kvm__enumerate_instances(do_pause); diff --git a/tools/kvm/builtin-debug.c b/tools/kvm/builtin-resume.c similarity index 51% copy from tools/kvm/builtin-debug.c copy to tools/kvm/builtin-resume.c index 153badd..4a85918 100644 --- a/tools/kvm/builtin-debug.c +++ b/tools/kvm/builtin-resume.c @@ -1,26 +1,26 @@ -#include <kvm/util.h> -#include <kvm/kvm-cmd.h> -#include <kvm/builtin-debug.h> -#include <kvm/kvm.h> - #include <stdio.h> #include <string.h> #include <signal.h> -static void do_debug(const char *name, int pid) +#include <kvm/util.h> +#include <kvm/kvm-cmd.h> +#include <kvm/builtin-resume.h> +#include <kvm/kvm.h> + +static void do_resume(const char *name, int pid) { - kill(pid, SIGQUIT); + kill(pid, SIGKVMRESUME); } -int kvm_cmd_debug(int argc, const char **argv, const char *prefix) +int kvm_cmd_resume(int argc, const char **argv, const char *prefix) { int pid; if (argc != 1) - die("Usage: kvm debug [instance name]\n"); + die("Usage: kvm resume [instance name]\n"); if (strcmp(argv[0], "all") == 0) { - kvm__enumerate_instances(do_debug); + kvm__enumerate_instances(do_resume); return 0; } @@ -28,5 +28,5 @@ int kvm_cmd_debug(int argc, const char **argv, const char *prefix) if (pid < 0) die("Failed locating instance name"); - return kill(pid, SIGQUIT); + return kill(pid, SIGKVMRESUME); } diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index c8539cc..364b538 100644 --- a/tools/kvm/builtin-run.c +++ b/tools/kvm/builtin-run.c @@ -235,10 +235,12 @@ static int is_paused; static void handle_sigusr2(int sig) { - if (is_paused) + if (sig == SIGKVMRESUME && is_paused) kvm__continue(); - else + else if (sig == SIGUSR2 && !is_paused) kvm__pause(); + else + return; is_paused = !is_paused; pr_info("Guest %s\n", is_paused ? "paused" : "resumed"); @@ -508,6 +510,7 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) signal(SIGUSR1, handle_sigusr1); signal(SIGUSR2, handle_sigusr2); signal(SIGKVMSTOP, handle_sigstop); + signal(SIGKVMRESUME, handle_sigusr2); nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN); diff --git a/tools/kvm/command-list.txt b/tools/kvm/command-list.txt index fd809a8..6a49d0a 100644 --- a/tools/kvm/command-list.txt +++ b/tools/kvm/command-list.txt @@ -4,6 +4,7 @@ # kvm-run mainporcelain common kvm-pause common +kvm-resume common kvm-version common kvm-list common kvm-debug common diff --git a/tools/kvm/include/kvm/builtin-resume.h b/tools/kvm/include/kvm/builtin-resume.h new file mode 100644 index 0000000..4a64747 --- /dev/null +++ b/tools/kvm/include/kvm/builtin-resume.h @@ -0,0 +1,6 @@ +#ifndef KVM__RESUME_H +#define KVM__RESUME_H + +int kvm_cmd_resume(int argc, const char **argv, const char *prefix); + +#endif diff --git a/tools/kvm/include/kvm/kvm.h b/tools/kvm/include/kvm/kvm.h index 722b24b..4f12d11 100644 --- a/tools/kvm/include/kvm/kvm.h +++ b/tools/kvm/include/kvm/kvm.h @@ -21,6 +21,7 @@ #define SIGKVMADDMEM (SIGRTMIN + 2) #define SIGKVMDELMEM (SIGRTMIN + 3) #define SIGKVMSTOP (SIGRTMIN + 4) +#define SIGKVMRESUME (SIGRTMIN + 5) struct kvm { int sys_fd; /* For system ioctls(), i.e. /dev/kvm */ diff --git a/tools/kvm/kvm-cmd.c b/tools/kvm/kvm-cmd.c index d85cb0a..63a2dbf 100644 --- a/tools/kvm/kvm-cmd.c +++ b/tools/kvm/kvm-cmd.c @@ -7,6 +7,7 @@ /* user defined header files */ #include "kvm/builtin-debug.h" #include "kvm/builtin-pause.h" +#include "kvm/builtin-resume.h" #include "kvm/builtin-balloon.h" #include "kvm/builtin-list.h" #include "kvm/builtin-version.h" @@ -17,6 +18,7 @@ struct cmd_struct kvm_commands[] = { { "pause", kvm_cmd_pause, NULL, 0 }, + { "resume", kvm_cmd_resume, NULL, 0 }, { "debug", kvm_cmd_debug, NULL, 0 }, { "balloon", kvm_cmd_balloon, NULL, 0 }, { "list", kvm_cmd_list, NULL, 0 }, -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html