[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Qemu-devel] [PATCH v2 3/6] suspend: add wakeup monitor command



On Mon, 16 Jan 2012 19:15:12 +0100
Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote:

> This patch adds a wakeup monitor command which will simply wake up
> suspended guests.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx>
> ---
>  hmp-commands.hx  |   14 ++++++++++++++
>  hmp.c            |    5 +++++
>  hmp.h            |    1 +
>  qapi-schema.json |   11 +++++++++++
>  qmp-commands.hx  |   21 +++++++++++++++++++++
>  qmp.c            |    5 +++++
>  6 files changed, 57 insertions(+), 0 deletions(-)
> 
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index a586498..c62871a 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -313,6 +313,20 @@ Resume emulation.
>  ETEXI
>  
>      {
> +        .name       = "wakeup",
> +        .args_type  = "",
> +        .params     = "",
> +        .help       = "wakeup guest from suspend",
> +        .mhandler.cmd = hmp_wakeup,
> +    },
> +
> +STEXI
> +@item wakeup
> +@findex wakeup
> +Wakeup guest from suspend.
> +ETEXI
> +
> +    {
>          .name       = "gdbserver",
>          .args_type  = "device:s?",
>          .params     = "[device]",
> diff --git a/hmp.c b/hmp.c
> index e7659d5..1a14684 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -594,6 +594,11 @@ void hmp_cont(Monitor *mon, const QDict *qdict)
>      }
>  }
>  
> +void hmp_wakeup(Monitor *mon, const QDict *qdict)
> +{
> +    qmp_wakeup(NULL);
> +}
> +
>  void hmp_inject_nmi(Monitor *mon, const QDict *qdict)
>  {
>      Error *errp = NULL;
> diff --git a/hmp.h b/hmp.h
> index 093242d..76eb3df 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -40,6 +40,7 @@ void hmp_cpu(Monitor *mon, const QDict *qdict);
>  void hmp_memsave(Monitor *mon, const QDict *qdict);
>  void hmp_pmemsave(Monitor *mon, const QDict *qdict);
>  void hmp_cont(Monitor *mon, const QDict *qdict);
> +void hmp_wakeup(Monitor *mon, const QDict *qdict);
>  void hmp_inject_nmi(Monitor *mon, const QDict *qdict);
>  void hmp_set_link(Monitor *mon, const QDict *qdict);
>  void hmp_block_passwd(Monitor *mon, const QDict *qdict);
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 44cf764..75773d4 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -967,6 +967,17 @@
>  { 'command': 'cont' }
>  
>  ##
> +# @wakeup:
> +#
> +# Wakrup guest from suspend

s/Wakrup/Wakeup

Very nice series:

 Acked-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx>

> +#
> +# Since:  1.1
> +#
> +# Returns:  nothing.
> +##
> +{ 'command': 'wakeup' }
> +
> +##
>  # @inject-nmi:
>  #
>  # Injects an Non-Maskable Interrupt into all guest's VCPUs.
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index 7e3f4b9..2c84a7a 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -218,6 +218,27 @@ Example:
>  EQMP
>  
>      {
> +        .name       = "wakeup",
> +        .args_type  = "",
> +        .mhandler.cmd_new = qmp_marshal_input_wakeup,
> +    },
> +
> +SQMP
> +wakeup
> +------
> +
> +Wakeup guest from suspend.
> +
> +Arguments: None.
> +
> +Example:
> +
> +-> { "execute": "wakeup" }
> +<- { "return": {} }
> +
> +EQMP
> +
> +    {
>          .name       = "system_reset",
>          .args_type  = "",
>          .mhandler.cmd_new = qmp_marshal_input_system_reset,
> diff --git a/qmp.c b/qmp.c
> index 5e09b41..f8b1dc7 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -158,6 +158,11 @@ void qmp_cont(Error **errp)
>      vm_start();
>  }
>  
> +void qmp_wakeup(Error **errp)
> +{
> +    qemu_system_wakeup_request();
> +}
> +
>  DevicePropertyInfoList *qmp_qom_list(const char *path, Error **errp)
>  {
>      DeviceState *dev;


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.