]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Pause/resume guest using SIGUSR2
authorSasha Levin <levinsasha928@gmail.com>
Mon, 30 May 2011 17:27:54 +0000 (20:27 +0300)
committerPekka Enberg <penberg@kernel.org>
Thu, 2 Jun 2011 08:37:56 +0000 (11:37 +0300)
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 <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/kvm-run.c

index 761ac0d3548dcaaf34f997177461f44c5e0aab4e..b0ef333885843e769a16477d239df51f8f731c39 100644 (file)
@@ -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);