qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/2] Allow silent system resets


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PATCH 1/2] Allow silent system resets
Date: Wed, 15 Jun 2011 11:32:33 -0300

On Tue, 14 Jun 2011 18:29:43 +0200
Jan Kiszka <address@hidden> wrote:

> This allows qemu_system_reset to be issued silently for internal
> purposes, ie. without sending out a monitor event. Convert the system
> reset after startup to the silent mode.
> 
> Signed-off-by: Jan Kiszka <address@hidden>

Only this patch is monitor related, but I've applied the two in the
monitor branch.

Thanks.

> ---
>  sysemu.h  |    5 ++++-
>  vl.c      |   10 ++++++----
>  xen-all.c |    2 +-
>  3 files changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/sysemu.h b/sysemu.h
> index 7e70daa..d3013f5 100644
> --- a/sysemu.h
> +++ b/sysemu.h
> @@ -34,6 +34,9 @@ void qemu_del_vm_change_state_handler(VMChangeStateEntry 
> *e);
>  #define VMSTOP_LOADVM    7
>  #define VMSTOP_MIGRATE   8
>  
> +#define VMRESET_SILENT   false
> +#define VMRESET_REPORT   true
> +
>  void vm_start(void);
>  void vm_stop(int reason);
>  
> @@ -50,7 +53,7 @@ int qemu_powerdown_requested(void);
>  void qemu_system_killed(int signal, pid_t pid);
>  void qemu_kill_report(void);
>  extern qemu_irq qemu_system_powerdown;
> -void qemu_system_reset(void);
> +void qemu_system_reset(bool report);
>  
>  void qemu_add_exit_notifier(Notifier *notify);
>  void qemu_remove_exit_notifier(Notifier *notify);
> diff --git a/vl.c b/vl.c
> index d7f905d..91380d2 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1249,7 +1249,7 @@ void qemu_unregister_reset(QEMUResetHandler *func, void 
> *opaque)
>      }
>  }
>  
> -void qemu_system_reset(void)
> +void qemu_system_reset(bool report)
>  {
>      QEMUResetEntry *re, *nre;
>  
> @@ -1257,7 +1257,9 @@ void qemu_system_reset(void)
>      QTAILQ_FOREACH_SAFE(re, &reset_handlers, entry, nre) {
>          re->func(re->opaque);
>      }
> -    monitor_protocol_event(QEVENT_RESET, NULL);
> +    if (report) {
> +        monitor_protocol_event(QEVENT_RESET, NULL);
> +    }
>      cpu_synchronize_all_post_reset();
>  }
>  
> @@ -1399,7 +1401,7 @@ static void main_loop(void)
>          if (qemu_reset_requested()) {
>              pause_all_vcpus();
>              cpu_synchronize_all_states();
> -            qemu_system_reset();
> +            qemu_system_reset(VMRESET_REPORT);
>              resume_all_vcpus();
>          }
>          if (qemu_powerdown_requested()) {
> @@ -3272,7 +3274,7 @@ int main(int argc, char **argv, char **envp)
>      qemu_register_reset(qbus_reset_all_fn, sysbus_get_default());
>      qemu_run_machine_init_done_notifiers();
>  
> -    qemu_system_reset();
> +    qemu_system_reset(VMRESET_SILENT);
>      if (loadvm) {
>          if (load_vmstate(loadvm) < 0) {
>              autostart = 0;
> diff --git a/xen-all.c b/xen-all.c
> index 0eac202..41fd98a 100644
> --- a/xen-all.c
> +++ b/xen-all.c
> @@ -452,7 +452,7 @@ static void cpu_handle_ioreq(void *opaque)
>                  destroy_hvm_domain();
>              }
>              if (qemu_reset_requested_get()) {
> -                qemu_system_reset();
> +                qemu_system_reset(VMRESET_REPORT);
>              }
>          }
>  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]