new file mode 100644
@@ -0,0 +1,15 @@
+kvm-pause(1)
+================
+
+NAME
+----
+kvm-pause - Pause/resume the virtual machine
+
+SYNOPSIS
+--------
+[verse]
+'kvm pause'
+
+DESCRIPTION
+-----------
+The command pauses and resumes a virtual machine.
@@ -42,6 +42,7 @@ OBJS += irq.o
OBJS += kvm-cmd.o
OBJS += kvm-debug.o
OBJS += kvm-help.o
+OBJS += kvm-pause.o
OBJS += kvm-run.o
OBJS += mptable.o
OBJS += rbtree.o
@@ -3,3 +3,4 @@
# command name category [deprecated] [common]
#
kvm-run mainporcelain common
+kvm-pause common
new file mode 100644
@@ -0,0 +1,6 @@
+#ifndef KVM__PAUSE_H
+#define KVM__PAUSE_H
+
+int kvm_cmd_pause(int argc, const char **argv, const char *prefix);
+
+#endif
@@ -6,11 +6,13 @@
/* user defined header files */
#include "kvm/kvm-debug.h"
+#include "kvm/kvm-pause.h"
#include "kvm/kvm-help.h"
#include "kvm/kvm-cmd.h"
#include "kvm/kvm-run.h"
struct cmd_struct kvm_commands[] = {
+ { "pause", kvm_cmd_pause, NULL, 0 },
{ "debug", kvm_cmd_debug, NULL, 0 },
{ "help", kvm_cmd_help, NULL, 0 },
{ "run", kvm_cmd_run, kvm_run_help, 0 },
new file mode 100644
@@ -0,0 +1,13 @@
+#include <stdio.h>
+#include <string.h>
+#include <signal.h>
+
+#include <kvm/util.h>
+#include <kvm/kvm-cmd.h>
+#include <kvm/kvm-pause.h>
+
+int kvm_cmd_pause(int argc, const char **argv, const char *prefix)
+{
+ signal(SIGUSR2, SIG_IGN);
+ return system("kill -USR2 $(pidof kvm)");
+}
This patch adds a 'kvm debug' command that's currently an alias for kill -USR2 `pidof kvm` Which pauses a guest (freezes all VCPU threads) or resumes a paused guest. Signed-off-by: Sasha Levin <levinsasha928@gmail.com> --- tools/kvm/Documentation/kvm-pause.txt | 15 +++++++++++++++ tools/kvm/Makefile | 1 + tools/kvm/command-list.txt | 1 + tools/kvm/include/kvm/kvm-pause.h | 6 ++++++ tools/kvm/kvm-cmd.c | 2 ++ tools/kvm/kvm-pause.c | 13 +++++++++++++ 6 files changed, 38 insertions(+), 0 deletions(-) create mode 100644 tools/kvm/Documentation/kvm-pause.txt create mode 100644 tools/kvm/include/kvm/kvm-pause.h create mode 100644 tools/kvm/kvm-pause.c