On Thu, Nov 08, 2018 at 05:26:06PM +0100, Cornelia Huck wrote:
> On Thu, 8 Nov 2018 18:08:15 +0200
> Yuval Shaia <yuval.shaia@oracle.com> 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 <yuval.shaia@oracle.com>
> > ---
> > 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 {
>