Message ID | 1307046176-13906-1-git-send-email-levinsasha928@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jun 2, 2011 at 9:22 PM, Sasha Levin <levinsasha928@gmail.com> wrote: > 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). > > Signed-off-by: Sasha Levin <levinsasha928@gmail.com> > --- > tools/kvm/Makefile | 1 + > tools/kvm/include/kvm/kvm-pause.h | 6 ++++++ > tools/kvm/kvm-cmd.c | 2 ++ > tools/kvm/kvm-pause.c | 13 +++++++++++++ > 4 files changed, 22 insertions(+), 0 deletions(-) > create mode 100644 tools/kvm/include/kvm/kvm-pause.h > create mode 100644 tools/kvm/kvm-pause.c > > diff --git a/tools/kvm/Makefile b/tools/kvm/Makefile > index a05a6b1..ed82cdf 100644 > --- a/tools/kvm/Makefile > +++ b/tools/kvm/Makefile > @@ -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 > diff --git a/tools/kvm/include/kvm/kvm-pause.h b/tools/kvm/include/kvm/kvm-pause.h > new file mode 100644 > index 0000000..0f8e96b > --- /dev/null > +++ b/tools/kvm/include/kvm/kvm-pause.h > @@ -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 > diff --git a/tools/kvm/kvm-cmd.c b/tools/kvm/kvm-cmd.c > index 2ea51a5..ffbc4ff 100644 > --- a/tools/kvm/kvm-cmd.c > +++ b/tools/kvm/kvm-cmd.c > @@ -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 }, We automatically generate <include/common-cmds.h> header file that lists the command options with kvm. Should we ensure 'pause' is added to the file? I think then './kvm help' will display 'pause' as one of the possible command. I think we should ensure 'pause' is added to the file during compilation. > { "debug", kvm_cmd_debug, NULL, 0 }, > { "help", kvm_cmd_help, NULL, 0 }, > { "run", kvm_cmd_run, kvm_run_help, 0 }, > diff --git a/tools/kvm/kvm-pause.c b/tools/kvm/kvm-pause.c > new file mode 100644 > index 0000000..fdf8714 > --- /dev/null > +++ b/tools/kvm/kvm-pause.c > @@ -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)"); > +} > -- > 1.7.5.3 > > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jun 2, 2011 at 11:22 PM, Sasha Levin <levinsasha928@gmail.com> wrote: > 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). > > Signed-off-by: Sasha Levin <levinsasha928@gmail.com> What is this useful for? Debugging? Don't we need a command to unfreeze the guest as well? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, 2011-06-03 at 09:29 +0300, Pekka Enberg wrote: > On Thu, Jun 2, 2011 at 11:22 PM, Sasha Levin <levinsasha928@gmail.com> wrote: > > 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). > > > > Signed-off-by: Sasha Levin <levinsasha928@gmail.com> > > What is this useful for? Debugging? Don't we need a command to > unfreeze the guest as well? It unfreezes the guest if it's paused. I should have mentioned that in the commit message.
* Prasad Joshi <prasadjoshi124@gmail.com> wrote: > > struct cmd_struct kvm_commands[] = { > > + { "pause", kvm_cmd_pause, NULL, 0 }, > > We automatically generate <include/common-cmds.h> header file that > lists the command options with kvm. Should we ensure 'pause' is > added to the file? I think then './kvm help' will display 'pause' > as one of the possible command. That is done by adding the new command to command-list.txt - then the Makefile will generate everything correctly. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/tools/kvm/Makefile b/tools/kvm/Makefile index a05a6b1..ed82cdf 100644 --- a/tools/kvm/Makefile +++ b/tools/kvm/Makefile @@ -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 diff --git a/tools/kvm/include/kvm/kvm-pause.h b/tools/kvm/include/kvm/kvm-pause.h new file mode 100644 index 0000000..0f8e96b --- /dev/null +++ b/tools/kvm/include/kvm/kvm-pause.h @@ -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 diff --git a/tools/kvm/kvm-cmd.c b/tools/kvm/kvm-cmd.c index 2ea51a5..ffbc4ff 100644 --- a/tools/kvm/kvm-cmd.c +++ b/tools/kvm/kvm-cmd.c @@ -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 }, diff --git a/tools/kvm/kvm-pause.c b/tools/kvm/kvm-pause.c new file mode 100644 index 0000000..fdf8714 --- /dev/null +++ b/tools/kvm/kvm-pause.c @@ -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). Signed-off-by: Sasha Levin <levinsasha928@gmail.com> --- tools/kvm/Makefile | 1 + tools/kvm/include/kvm/kvm-pause.h | 6 ++++++ tools/kvm/kvm-cmd.c | 2 ++ tools/kvm/kvm-pause.c | 13 +++++++++++++ 4 files changed, 22 insertions(+), 0 deletions(-) create mode 100644 tools/kvm/include/kvm/kvm-pause.h create mode 100644 tools/kvm/kvm-pause.c