From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH v2 4/8] kvm tools: Pause/resume guest using SIGUSR2 Date: Mon, 30 May 2011 11:30:43 +0300 Message-ID: <1306744247-26051-4-git-send-email-levinsasha928@gmail.com> References: <1306744247-26051-1-git-send-email-levinsasha928@gmail.com> Cc: kvm@vger.kernel.org, mingo@elte.hu, asias.hejun@gmail.com, gorcunov@gmail.com, prasadjoshi124@gmail.com, Sasha Levin To: penberg@kernel.org Return-path: Received: from mail-ww0-f44.google.com ([74.125.82.44]:35968 "EHLO mail-ww0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751147Ab1E3Ibm (ORCPT ); Mon, 30 May 2011 04:31:42 -0400 Received: by mail-ww0-f44.google.com with SMTP id 36so3676409wwa.1 for ; Mon, 30 May 2011 01:31:42 -0700 (PDT) In-Reply-To: <1306744247-26051-1-git-send-email-levinsasha928@gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: 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 --- tools/kvm/kvm-run.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c index 761ac0d..49cc0aa 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); -- 1.7.5.rc3