From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34598) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dAY24-0003QT-Ji for qemu-devel@nongnu.org; Tue, 16 May 2017 04:40:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dAY21-0000UF-6V for qemu-devel@nongnu.org; Tue, 16 May 2017 04:40:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57700) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dAY20-0000Tw-Tw for qemu-devel@nongnu.org; Tue, 16 May 2017 04:40:37 -0400 From: Markus Armbruster References: <20170515214114.15442-1-eblake@redhat.com> <20170515214114.15442-3-eblake@redhat.com> Date: Tue, 16 May 2017 10:40:04 +0200 In-Reply-To: <20170515214114.15442-3-eblake@redhat.com> (Eric Blake's message of "Mon, 15 May 2017 16:41:11 -0500") Message-ID: <877f1hgpp7.fsf@dusky.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH v9 2/5] shutdown: Prepare for use of an enum in reset/shutdown_request List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org, Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Juan Quintela , alistair.francis@xilinx.com, zhanghailiang , "open list:X86" , Anthony Perard , Paolo Bonzini , "Dr. David Alan Gilbert" , Richard Henderson Eric Blake writes: > We want to track why a guest was shutdown; in particular, being able > to tell the difference between a guest request (such as ACPI request) > and host request (such as SIGINT) will prove useful to libvirt. > Since all requests eventually end up changing shutdown_requested in > vl.c, the logical change is to make that value track the reason, > rather than its current 0/1 contents. > > Since command-line options control whether a reset request is turned > into a shutdown request instead, the same treatment is given to > reset_requested. > > This patch adds an internal enum ShutdownCause that describes reasons > that a shutdown can be requested, and changes qemu_system_reset() to > pass the reason through, although for now nothing is actually changed > with regards to what gets reported. The enum could be exported via > QAPI at a later date, if deemed necessary, but for now, there has not > been a request to expose that much detail to end clients. > > For the most part, we turn 0 into SHUTDOWN_CAUSE_NONE, and 1 into > SHUTDOWN_CAUSE_HOST_ERROR; the only specific case where we have enough > information right now to use a different value is when we are reacting > to a host signal. It will take a further patch to edit all call-sites > that can trigger a reset or shutdown request to properly pass in any > other reasons; this patch includes TODOs to point such places out. > > qemu_system_reset() trades its 'bool report' parameter for a > 'ShutdownCause reason', with all non-zero values having the same > effect; this lets us get rid of the weird #defines for VMRESET_* > as synonyms for bools. This paragraph could perhaps be merged with the other one on qemu_system_reset(), but it's not worth a respin. > > Signed-off-by: Eric Blake > > --- > v9: one more stray FIXME > v8: s/FIXME/TODO/, include SHUTDOWN_CAUSE__MAX now rather than later, > tweak comment on GUEST_SHUTDOWN to mention suspend > v7: drop 'bool report' from qemu_system_reset(), reorder enum to put > HOST_ERROR == 1, improve commit message > v6: make ShutdownCause internal-only, add SHUTDOWN_CAUSE_NONE so that > comparison to 0 still works, tweak initial FIXME values > v5: no change > v4: s/ShutdownType/ShutdownCause/, no thanks to mingw header pollution > v3: new patch > --- > include/sysemu/sysemu.h | 23 ++++++++++++++++----- > vl.c | 53 ++++++++++++++++++++++++++++++------------------- > hw/i386/xen/xen-hvm.c | 7 +++++-- > migration/colo.c | 2 +- > migration/savevm.c | 2 +- > 5 files changed, 58 insertions(+), 29 deletions(-) > > diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h > index 15656b7..52102fd 100644 > --- a/include/sysemu/sysemu.h > +++ b/include/sysemu/sysemu.h > @@ -33,8 +33,21 @@ VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb, > void qemu_del_vm_change_state_handler(VMChangeStateEntry *e); > void vm_state_notify(int running, RunState state); > > -#define VMRESET_SILENT false > -#define VMRESET_REPORT true > +/* Enumeration of various causes for shutdown. */ > +typedef enum ShutdownCause { > + SHUTDOWN_CAUSE_NONE, /* No shutdown request pending */ > + SHUTDOWN_CAUSE_HOST_ERROR, /* An error prevents further use of guest */ > + SHUTDOWN_CAUSE_HOST_QMP, /* Reaction to a QMP command, like 'quit' */ > + SHUTDOWN_CAUSE_HOST_SIGNAL, /* Reaction to a signal, such as SIGINT */ > + SHUTDOWN_CAUSE_HOST_UI, /* Reaction to UI event, like window close */ > + SHUTDOWN_CAUSE_GUEST_SHUTDOWN,/* Guest shutdown/suspend request, via > + ACPI or other hardware-specific means */ > + SHUTDOWN_CAUSE_GUEST_RESET, /* Guest reset request, and command line > + turns that into a shutdown */ > + SHUTDOWN_CAUSE_GUEST_PANIC, /* Guest panicked, and command line turns > + that into a shutdown */ > + SHUTDOWN_CAUSE__MAX, The __ is a bit odd for handwritten code, but it matches QAPI-generated code. Okay. > +} ShutdownCause; > > void vm_start(void); > int vm_prepare_start(void); Reviewed-by: Markus Armbruster From mboxrd@z Thu Jan 1 00:00:00 1970 From: Markus Armbruster Subject: Re: [Qemu-devel] [PATCH v9 2/5] shutdown: Prepare for use of an enum in reset/shutdown_request Date: Tue, 16 May 2017 10:40:04 +0200 Message-ID: <877f1hgpp7.fsf@dusky.pond.sub.org> References: <20170515214114.15442-1-eblake@redhat.com> <20170515214114.15442-3-eblake@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dAY23-0003nv-7y for xen-devel@lists.xenproject.org; Tue, 16 May 2017 08:40:39 +0000 In-Reply-To: <20170515214114.15442-3-eblake@redhat.com> (Eric Blake's message of "Mon, 15 May 2017 16:41:11 -0500") List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Eric Blake Cc: Stefano Stabellini , Eduardo Habkost , Juan Quintela , "Michael S. Tsirkin" , qemu-devel@nongnu.org, alistair.francis@xilinx.com, Paolo Bonzini , Anthony Perard , "open list:X86" , Richard Henderson , "Dr. David Alan Gilbert" , zhanghailiang List-Id: xen-devel@lists.xenproject.org RXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+IHdyaXRlczoKCj4gV2Ugd2FudCB0byB0cmFj ayB3aHkgYSBndWVzdCB3YXMgc2h1dGRvd247IGluIHBhcnRpY3VsYXIsIGJlaW5nIGFibGUKPiB0 byB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBndWVzdCByZXF1ZXN0IChzdWNoIGFzIEFD UEkgcmVxdWVzdCkKPiBhbmQgaG9zdCByZXF1ZXN0IChzdWNoIGFzIFNJR0lOVCkgd2lsbCBwcm92 ZSB1c2VmdWwgdG8gbGlidmlydC4KPiBTaW5jZSBhbGwgcmVxdWVzdHMgZXZlbnR1YWxseSBlbmQg dXAgY2hhbmdpbmcgc2h1dGRvd25fcmVxdWVzdGVkIGluCj4gdmwuYywgdGhlIGxvZ2ljYWwgY2hh bmdlIGlzIHRvIG1ha2UgdGhhdCB2YWx1ZSB0cmFjayB0aGUgcmVhc29uLAo+IHJhdGhlciB0aGFu IGl0cyBjdXJyZW50IDAvMSBjb250ZW50cy4KPgo+IFNpbmNlIGNvbW1hbmQtbGluZSBvcHRpb25z IGNvbnRyb2wgd2hldGhlciBhIHJlc2V0IHJlcXVlc3QgaXMgdHVybmVkCj4gaW50byBhIHNodXRk b3duIHJlcXVlc3QgaW5zdGVhZCwgdGhlIHNhbWUgdHJlYXRtZW50IGlzIGdpdmVuIHRvCj4gcmVz ZXRfcmVxdWVzdGVkLgo+Cj4gVGhpcyBwYXRjaCBhZGRzIGFuIGludGVybmFsIGVudW0gU2h1dGRv d25DYXVzZSB0aGF0IGRlc2NyaWJlcyByZWFzb25zCj4gdGhhdCBhIHNodXRkb3duIGNhbiBiZSBy ZXF1ZXN0ZWQsIGFuZCBjaGFuZ2VzIHFlbXVfc3lzdGVtX3Jlc2V0KCkgdG8KPiBwYXNzIHRoZSBy ZWFzb24gdGhyb3VnaCwgYWx0aG91Z2ggZm9yIG5vdyBub3RoaW5nIGlzIGFjdHVhbGx5IGNoYW5n ZWQKPiB3aXRoIHJlZ2FyZHMgdG8gd2hhdCBnZXRzIHJlcG9ydGVkLiAgVGhlIGVudW0gY291bGQg YmUgZXhwb3J0ZWQgdmlhCj4gUUFQSSBhdCBhIGxhdGVyIGRhdGUsIGlmIGRlZW1lZCBuZWNlc3Nh cnksIGJ1dCBmb3Igbm93LCB0aGVyZSBoYXMgbm90Cj4gYmVlbiBhIHJlcXVlc3QgdG8gZXhwb3Nl IHRoYXQgbXVjaCBkZXRhaWwgdG8gZW5kIGNsaWVudHMuCj4KPiBGb3IgdGhlIG1vc3QgcGFydCwg d2UgdHVybiAwIGludG8gU0hVVERPV05fQ0FVU0VfTk9ORSwgYW5kIDEgaW50bwo+IFNIVVRET1dO X0NBVVNFX0hPU1RfRVJST1I7IHRoZSBvbmx5IHNwZWNpZmljIGNhc2Ugd2hlcmUgd2UgaGF2ZSBl bm91Z2gKPiBpbmZvcm1hdGlvbiByaWdodCBub3cgdG8gdXNlIGEgZGlmZmVyZW50IHZhbHVlIGlz IHdoZW4gd2UgYXJlIHJlYWN0aW5nCj4gdG8gYSBob3N0IHNpZ25hbC4gIEl0IHdpbGwgdGFrZSBh IGZ1cnRoZXIgcGF0Y2ggdG8gZWRpdCBhbGwgY2FsbC1zaXRlcwo+IHRoYXQgY2FuIHRyaWdnZXIg YSByZXNldCBvciBzaHV0ZG93biByZXF1ZXN0IHRvIHByb3Blcmx5IHBhc3MgaW4gYW55Cj4gb3Ro ZXIgcmVhc29uczsgdGhpcyBwYXRjaCBpbmNsdWRlcyBUT0RPcyB0byBwb2ludCBzdWNoIHBsYWNl cyBvdXQuCj4KPiBxZW11X3N5c3RlbV9yZXNldCgpIHRyYWRlcyBpdHMgJ2Jvb2wgcmVwb3J0JyBw YXJhbWV0ZXIgZm9yIGEKPiAnU2h1dGRvd25DYXVzZSByZWFzb24nLCB3aXRoIGFsbCBub24temVy byB2YWx1ZXMgaGF2aW5nIHRoZSBzYW1lCj4gZWZmZWN0OyB0aGlzIGxldHMgdXMgZ2V0IHJpZCBv ZiB0aGUgd2VpcmQgI2RlZmluZXMgZm9yIFZNUkVTRVRfKgo+IGFzIHN5bm9ueW1zIGZvciBib29s cy4KClRoaXMgcGFyYWdyYXBoIGNvdWxkIHBlcmhhcHMgYmUgbWVyZ2VkIHdpdGggdGhlIG90aGVy IG9uZSBvbgpxZW11X3N5c3RlbV9yZXNldCgpLCBidXQgaXQncyBub3Qgd29ydGggYSByZXNwaW4u Cgo+Cj4gU2lnbmVkLW9mZi1ieTogRXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+Cj4KPiAt LS0KPiB2OTogb25lIG1vcmUgc3RyYXkgRklYTUUKPiB2ODogcy9GSVhNRS9UT0RPLywgaW5jbHVk ZSBTSFVURE9XTl9DQVVTRV9fTUFYIG5vdyByYXRoZXIgdGhhbiBsYXRlciwKPiB0d2VhayBjb21t ZW50IG9uIEdVRVNUX1NIVVRET1dOIHRvIG1lbnRpb24gc3VzcGVuZAo+IHY3OiBkcm9wICdib29s IHJlcG9ydCcgZnJvbSBxZW11X3N5c3RlbV9yZXNldCgpLCByZW9yZGVyIGVudW0gdG8gcHV0Cj4g SE9TVF9FUlJPUiA9PSAxLCBpbXByb3ZlIGNvbW1pdCBtZXNzYWdlCj4gdjY6IG1ha2UgU2h1dGRv d25DYXVzZSBpbnRlcm5hbC1vbmx5LCBhZGQgU0hVVERPV05fQ0FVU0VfTk9ORSBzbyB0aGF0Cj4g Y29tcGFyaXNvbiB0byAwIHN0aWxsIHdvcmtzLCB0d2VhayBpbml0aWFsIEZJWE1FIHZhbHVlcwo+ IHY1OiBubyBjaGFuZ2UKPiB2NDogcy9TaHV0ZG93blR5cGUvU2h1dGRvd25DYXVzZS8sIG5vIHRo YW5rcyB0byBtaW5ndyBoZWFkZXIgcG9sbHV0aW9uCj4gdjM6IG5ldyBwYXRjaAo+IC0tLQo+ICBp bmNsdWRlL3N5c2VtdS9zeXNlbXUuaCB8IDIzICsrKysrKysrKysrKysrKystLS0tLQo+ICB2bC5j ICAgICAgICAgICAgICAgICAgICB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0KPiAgaHcvaTM4Ni94ZW4veGVuLWh2bS5jICAgfCAgNyArKysrKy0t Cj4gIG1pZ3JhdGlvbi9jb2xvLmMgICAgICAgIHwgIDIgKy0KPiAgbWlncmF0aW9uL3NhdmV2bS5j ICAgICAgfCAgMiArLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDI5IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzZW11L3N5c2VtdS5oIGIvaW5j bHVkZS9zeXNlbXUvc3lzZW11LmgKPiBpbmRleCAxNTY1NmI3Li41MjEwMmZkIDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvc3lzZW11L3N5c2VtdS5oCj4gKysrIGIvaW5jbHVkZS9zeXNlbXUvc3lzZW11 LmgKPiBAQCAtMzMsOCArMzMsMjEgQEAgVk1DaGFuZ2VTdGF0ZUVudHJ5ICpxZW11X2FkZF92bV9j aGFuZ2Vfc3RhdGVfaGFuZGxlcihWTUNoYW5nZVN0YXRlSGFuZGxlciAqY2IsCj4gIHZvaWQgcWVt dV9kZWxfdm1fY2hhbmdlX3N0YXRlX2hhbmRsZXIoVk1DaGFuZ2VTdGF0ZUVudHJ5ICplKTsKPiAg dm9pZCB2bV9zdGF0ZV9ub3RpZnkoaW50IHJ1bm5pbmcsIFJ1blN0YXRlIHN0YXRlKTsKPgo+IC0j ZGVmaW5lIFZNUkVTRVRfU0lMRU5UICAgZmFsc2UKPiAtI2RlZmluZSBWTVJFU0VUX1JFUE9SVCAg IHRydWUKPiArLyogRW51bWVyYXRpb24gb2YgdmFyaW91cyBjYXVzZXMgZm9yIHNodXRkb3duLiAq Lwo+ICt0eXBlZGVmIGVudW0gU2h1dGRvd25DYXVzZSB7Cj4gKyAgICBTSFVURE9XTl9DQVVTRV9O T05FLCAgICAgICAgICAvKiBObyBzaHV0ZG93biByZXF1ZXN0IHBlbmRpbmcgKi8KPiArICAgIFNI VVRET1dOX0NBVVNFX0hPU1RfRVJST1IsICAgIC8qIEFuIGVycm9yIHByZXZlbnRzIGZ1cnRoZXIg dXNlIG9mIGd1ZXN0ICovCj4gKyAgICBTSFVURE9XTl9DQVVTRV9IT1NUX1FNUCwgICAgICAvKiBS ZWFjdGlvbiB0byBhIFFNUCBjb21tYW5kLCBsaWtlICdxdWl0JyAqLwo+ICsgICAgU0hVVERPV05f Q0FVU0VfSE9TVF9TSUdOQUwsICAgLyogUmVhY3Rpb24gdG8gYSBzaWduYWwsIHN1Y2ggYXMgU0lH SU5UICovCj4gKyAgICBTSFVURE9XTl9DQVVTRV9IT1NUX1VJLCAgICAgICAvKiBSZWFjdGlvbiB0 byBVSSBldmVudCwgbGlrZSB3aW5kb3cgY2xvc2UgKi8KPiArICAgIFNIVVRET1dOX0NBVVNFX0dV RVNUX1NIVVRET1dOLC8qIEd1ZXN0IHNodXRkb3duL3N1c3BlbmQgcmVxdWVzdCwgdmlhCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQ1BJIG9yIG90aGVyIGhhcmR3YXJl LXNwZWNpZmljIG1lYW5zICovCj4gKyAgICBTSFVURE9XTl9DQVVTRV9HVUVTVF9SRVNFVCwgICAv KiBHdWVzdCByZXNldCByZXF1ZXN0LCBhbmQgY29tbWFuZCBsaW5lCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0dXJucyB0aGF0IGludG8gYSBzaHV0ZG93biAqLwo+ICsg ICAgU0hVVERPV05fQ0FVU0VfR1VFU1RfUEFOSUMsICAgLyogR3Vlc3QgcGFuaWNrZWQsIGFuZCBj b21tYW5kIGxpbmUgdHVybnMKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoYXQgaW50byBhIHNodXRkb3duICovCj4gKyAgICBTSFVURE9XTl9DQVVTRV9fTUFYLAoKVGhl IF9fIGlzIGEgYml0IG9kZCBmb3IgaGFuZHdyaXR0ZW4gY29kZSwgYnV0IGl0IG1hdGNoZXMgUUFQ SS1nZW5lcmF0ZWQKY29kZS4gIE9rYXkuCgo+ICt9IFNodXRkb3duQ2F1c2U7Cj4KPiAgdm9pZCB2 bV9zdGFydCh2b2lkKTsKPiAgaW50IHZtX3ByZXBhcmVfc3RhcnQodm9pZCk7CgpSZXZpZXdlZC1i eTogTWFya3VzIEFybWJydXN0ZXIgPGFybWJydUByZWRoYXQuY29tPgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==