qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 19/22] vl: Introduce shutdown_notifiers


From: Cornelia Huck
Subject: Re: [Qemu-devel] [PATCH v2 19/22] vl: Introduce shutdown_notifiers
Date: Thu, 8 Nov 2018 17:26:06 +0100

On Thu,  8 Nov 2018 18:08:15 +0200
Yuval Shaia <address@hidden> wrote:

> Notifier will be used for signaling shutdown event to inform system is
> shutdown. This will allow devices and other component to run some
> cleanup code needed before VM is shutdown.
> 
> Signed-off-by: Yuval Shaia <address@hidden>
> ---
>  include/sysemu/sysemu.h |  1 +
>  vl.c                    | 15 ++++++++++++++-
>  2 files changed, 15 insertions(+), 1 deletion(-)
> 

> @@ -1809,6 +1811,12 @@ static void qemu_system_powerdown(void)
>      notifier_list_notify(&powerdown_notifiers, NULL);
>  }
>  
> +static void qemu_system_shutdown(bool by_guest)

I would pass the shutdown reason here directly (instead of only whether
this was triggered by the guest or not)...

> +{
> +    qapi_event_send_shutdown(by_guest);
> +    notifier_list_notify(&shutdown_notifiers, NULL);

...and also pass it to the notifiers here. If we have the info anyway,
why not simply pass it along.

> +}
> +
>  void qemu_system_powerdown_request(void)
>  {
>      trace_qemu_system_powerdown_request();
> @@ -1821,6 +1829,11 @@ void qemu_register_powerdown_notifier(Notifier 
> *notifier)
>      notifier_list_add(&powerdown_notifiers, notifier);
>  }
>  
> +void qemu_register_shutdown_notifier(Notifier *notifier)
> +{
> +    notifier_list_add(&shutdown_notifiers, notifier);
> +}
> +
>  void qemu_system_debug_request(void)
>  {
>      debug_requested = 1;
> @@ -1848,7 +1861,7 @@ static bool main_loop_should_exit(void)
>      request = qemu_shutdown_requested();
>      if (request) {
>          qemu_kill_report();
> -        qapi_event_send_shutdown(shutdown_caused_by_guest(request));
> +        qemu_system_shutdown(shutdown_caused_by_guest(request));
>          if (no_shutdown) {
>              vm_stop(RUN_STATE_SHUTDOWN);
>          } else {




reply via email to

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