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: Yuval Shaia
Subject: Re: [Qemu-devel] [PATCH v2 19/22] vl: Introduce shutdown_notifiers
Date: Thu, 8 Nov 2018 22:45:31 +0200
User-agent: Mutt/1.10.1 (2018-07-13)

On Thu, Nov 08, 2018 at 05:26:06PM +0100, Cornelia Huck wrote:
> 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.

Agree, make sense.

> 
> > +}
> > +
> >  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]