From: Sasha Levin Date: Mon, 30 May 2011 17:27:54 +0000 (+0300) Subject: kvm tools: Pause/resume guest using SIGUSR2 X-Git-Tag: next-20110824~3^2~241 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=1c5ee6cab07829f0ed9adf70b7fccb0b0dc7423a;p=karo-tx-linux.git kvm tools: Pause/resume guest using SIGUSR2 Make SIGUSR2 pause/resume a guest, this allows to easily test pausing a guest. Can be tested using cmdline 'kill -USR2 $(pidof kvm)'. Signed-off-by: Sasha Levin Signed-off-by: Pekka Enberg --- diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c index 761ac0d3548d..b0ef33388584 100644 --- a/tools/kvm/kvm-run.c +++ b/tools/kvm/kvm-run.c @@ -165,6 +165,20 @@ static void handle_sigusr1(int sig) mb(); } +/* Pause/resume the guest using SIGUSR2 */ +static int is_paused; + +static void handle_sigusr2(int sig) +{ + if (is_paused) + kvm__continue(); + else + kvm__pause(); + + is_paused = !is_paused; + pr_info("Guest %s\n", is_paused ? "paused" : "resumed"); +} + static void handle_sigquit(int sig) { int i; @@ -422,6 +436,7 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) signal(SIGALRM, handle_sigalrm); signal(SIGQUIT, handle_sigquit); signal(SIGUSR1, handle_sigusr1); + signal(SIGUSR2, handle_sigusr2); nr_online_cpus = sysconf(_SC_NPROCESSORS_ONLN);