From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60452) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d47oA-0007Af-HM for qemu-devel@nongnu.org; Fri, 28 Apr 2017 11:27:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d47o7-00061B-9U for qemu-devel@nongnu.org; Fri, 28 Apr 2017 11:27:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39052) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d47o6-0005zp-V7 for qemu-devel@nongnu.org; Fri, 28 Apr 2017 11:27:43 -0400 Date: Fri, 28 Apr 2017 16:27:29 +0100 From: "Dr. David Alan Gilbert" Message-ID: <20170428152729.GI2085@work-vm> References: <20170428021317.24711-1-eblake@redhat.com> <20170428021317.24711-3-eblake@redhat.com> <20170428080821.GB2085@work-vm> <3a8d9f68-f30c-1191-ca80-a93f0050f011@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3a8d9f68-f30c-1191-ca80-a93f0050f011@redhat.com> Subject: Re: [Qemu-devel] [PATCH v5 2/4] 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, armbru@redhat.com, berrange@redhat.com, alistair.francis@xilinx.com, Stefano Stabellini , Anthony Perard , "Michael S. Tsirkin" , Paolo Bonzini , Richard Henderson , Eduardo Habkost , zhanghailiang , Juan Quintela , "open list:X86" * Eric Blake (eblake@redhat.com) wrote: > On 04/28/2017 03:08 AM, Dr. David Alan Gilbert wrote: > > * Eric Blake (eblake@redhat.com) wrote: > >> 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. > >> > > >> ## > >> +# @ShutdownCause: > >> +# > >> +# Enumeration of various causes for shutdown. > >> +# > >> +# @host-qmp: Reaction to a QMP command, such as 'quit' > >> +# @host-signal: Reaction to a signal, such as SIGINT > >> +# @host-ui: Reaction to a UI event, such as closing the window > >> +# @host-replay: The host is replaying an earlier shutdown event > >> +# @host-error: Qemu encountered an error that prevents further use of the guest > >> +# @guest-shutdown: The guest requested a shutdown, such as via ACPI or > >> +# other hardware-specific action > >> +# @guest-reset: The guest requested a reset, and the command line > >> +# response to a reset is to instead trigger a shutdown > >> +# @guest-panic: The guest panicked, and the command line response to > >> +# a panic is to trigger a shutdown > > > > It's a little coarse grained; is there anyway to pass platform specific information > > for debug? I ask because I spent a while debugging a few bugs with unexpected > > resets and had to figure out which of x86's many reset causes triggered it. > > I'm open to any followup patches that add further enum values and > adjusts the various callers (patch 3 shows how MANY callers use > qemu_system_shutdown_request). But I don't think it's necessarily in > scope for this series - remember, my goal here was merely to distinguish > between host- and guest-triggered resets (which libvirt and higher > management tasks want to know) Yep, that's fine. > rather than which of multiple reset > paths was taken (I agree that it is useful during a qemu debug session - > but that's a different audience). I also don't consider myself an > expert in the many ways that x86 can reset - it was easy to blindly > rewrite qemu_system_shutdown_request() into > qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN) based solely > on directory, but it would be harder to distinguish which of the > multiple files should have which finer-grained cause. Yes, I'm also not an expert on x86 resets - but when I was debugging I just added a tag in every place it called the reset code. At a higher level, using your tags, I'm not sure where a reset triggered by a fault detected by the hypervisor lives - e.g. an x86 triple fault where the guest screws up so badly that it just gets reset. Is that a guest-reset or a guest-panic or what - neither case was actually asked for by the guest itself. Dave > > -- > Eric Blake, Principal Software Engineer > Red Hat, Inc. +1-919-301-3266 > Virtualization: qemu.org | libvirt.org > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Dr. David Alan Gilbert" Subject: Re: [PATCH v5 2/4] shutdown: Prepare for use of an enum in reset/shutdown_request Date: Fri, 28 Apr 2017 16:27:29 +0100 Message-ID: <20170428152729.GI2085@work-vm> References: <20170428021317.24711-1-eblake@redhat.com> <20170428021317.24711-3-eblake@redhat.com> <20170428080821.GB2085@work-vm> <3a8d9f68-f30c-1191-ca80-a93f0050f011@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d47o9-0005Hz-Bw for xen-devel@lists.xenproject.org; Fri, 28 Apr 2017 15:27:45 +0000 Content-Disposition: inline In-Reply-To: <3a8d9f68-f30c-1191-ca80-a93f0050f011@redhat.com> 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 , berrange@redhat.com, Eduardo Habkost , "Michael S. Tsirkin" , armbru@redhat.com, Juan Quintela , qemu-devel@nongnu.org, alistair.francis@xilinx.com, zhanghailiang , "open list:X86" , Anthony Perard , Paolo Bonzini , Richard Henderson List-Id: xen-devel@lists.xenproject.org KiBFcmljIEJsYWtlIChlYmxha2VAcmVkaGF0LmNvbSkgd3JvdGU6Cj4gT24gMDQvMjgvMjAxNyAw MzowOCBBTSwgRHIuIERhdmlkIEFsYW4gR2lsYmVydCB3cm90ZToKPiA+ICogRXJpYyBCbGFrZSAo ZWJsYWtlQHJlZGhhdC5jb20pIHdyb3RlOgo+ID4+IFdlIHdhbnQgdG8gdHJhY2sgd2h5IGEgZ3Vl c3Qgd2FzIHNodXRkb3duOyBpbiBwYXJ0aWN1bGFyLCBiZWluZyBhYmxlCj4gPj4gdG8gdGVsbCB0 aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgZ3Vlc3QgcmVxdWVzdCAoc3VjaCBhcyBBQ1BJIHJlcXVl c3QpCj4gPj4gYW5kIGhvc3QgcmVxdWVzdCAoc3VjaCBhcyBTSUdJTlQpIHdpbGwgcHJvdmUgdXNl ZnVsIHRvIGxpYnZpcnQuCj4gPj4gU2luY2UgYWxsIHJlcXVlc3RzIGV2ZW50dWFsbHkgZW5kIHVw IGNoYW5naW5nIHNodXRkb3duX3JlcXVlc3RlZCBpbgo+ID4+IHZsLmMsIHRoZSBsb2dpY2FsIGNo YW5nZSBpcyB0byBtYWtlIHRoYXQgdmFsdWUgdHJhY2sgdGhlIHJlYXNvbiwKPiA+PiByYXRoZXIg dGhhbiBpdHMgY3VycmVudCAwLzEgY29udGVudHMuCj4gPj4KPiAKPiA+PiAgIyMKPiA+PiArIyBA U2h1dGRvd25DYXVzZToKPiA+PiArIwo+ID4+ICsjIEVudW1lcmF0aW9uIG9mIHZhcmlvdXMgY2F1 c2VzIGZvciBzaHV0ZG93bi4KPiA+PiArIwo+ID4+ICsjIEBob3N0LXFtcDogUmVhY3Rpb24gdG8g YSBRTVAgY29tbWFuZCwgc3VjaCBhcyAncXVpdCcKPiA+PiArIyBAaG9zdC1zaWduYWw6IFJlYWN0 aW9uIHRvIGEgc2lnbmFsLCBzdWNoIGFzIFNJR0lOVAo+ID4+ICsjIEBob3N0LXVpOiBSZWFjdGlv biB0byBhIFVJIGV2ZW50LCBzdWNoIGFzIGNsb3NpbmcgdGhlIHdpbmRvdwo+ID4+ICsjIEBob3N0 LXJlcGxheTogVGhlIGhvc3QgaXMgcmVwbGF5aW5nIGFuIGVhcmxpZXIgc2h1dGRvd24gZXZlbnQK PiA+PiArIyBAaG9zdC1lcnJvcjogUWVtdSBlbmNvdW50ZXJlZCBhbiBlcnJvciB0aGF0IHByZXZl bnRzIGZ1cnRoZXIgdXNlIG9mIHRoZSBndWVzdAo+ID4+ICsjIEBndWVzdC1zaHV0ZG93bjogVGhl IGd1ZXN0IHJlcXVlc3RlZCBhIHNodXRkb3duLCBzdWNoIGFzIHZpYSBBQ1BJIG9yCj4gPj4gKyMg ICAgICAgICAgICAgICAgICBvdGhlciBoYXJkd2FyZS1zcGVjaWZpYyBhY3Rpb24KPiA+PiArIyBA Z3Vlc3QtcmVzZXQ6IFRoZSBndWVzdCByZXF1ZXN0ZWQgYSByZXNldCwgYW5kIHRoZSBjb21tYW5k IGxpbmUKPiA+PiArIyAgICAgICAgICAgICAgIHJlc3BvbnNlIHRvIGEgcmVzZXQgaXMgdG8gaW5z dGVhZCB0cmlnZ2VyIGEgc2h1dGRvd24KPiA+PiArIyBAZ3Vlc3QtcGFuaWM6IFRoZSBndWVzdCBw YW5pY2tlZCwgYW5kIHRoZSBjb21tYW5kIGxpbmUgcmVzcG9uc2UgdG8KPiA+PiArIyAgICAgICAg ICAgICAgIGEgcGFuaWMgaXMgdG8gdHJpZ2dlciBhIHNodXRkb3duCj4gPiAKPiA+IEl0J3MgYSBs aXR0bGUgY29hcnNlIGdyYWluZWQ7ICBpcyB0aGVyZSBhbnl3YXkgdG8gcGFzcyBwbGF0Zm9ybSBz cGVjaWZpYyBpbmZvcm1hdGlvbgo+ID4gZm9yIGRlYnVnPyAgSSBhc2sgYmVjYXVzZSBJIHNwZW50 IGEgd2hpbGUgZGVidWdnaW5nIGEgZmV3IGJ1Z3Mgd2l0aCB1bmV4cGVjdGVkCj4gPiByZXNldHMg YW5kIGhhZCB0byBmaWd1cmUgb3V0IHdoaWNoIG9mIHg4NidzIG1hbnkgcmVzZXQgY2F1c2VzIHRy aWdnZXJlZCBpdC4KPiAKPiBJJ20gb3BlbiB0byBhbnkgZm9sbG93dXAgcGF0Y2hlcyB0aGF0IGFk ZCBmdXJ0aGVyIGVudW0gdmFsdWVzIGFuZAo+IGFkanVzdHMgdGhlIHZhcmlvdXMgY2FsbGVycyAo cGF0Y2ggMyBzaG93cyBob3cgTUFOWSBjYWxsZXJzIHVzZQo+IHFlbXVfc3lzdGVtX3NodXRkb3du X3JlcXVlc3QpLiAgQnV0IEkgZG9uJ3QgdGhpbmsgaXQncyBuZWNlc3NhcmlseSBpbgo+IHNjb3Bl IGZvciB0aGlzIHNlcmllcyAtIHJlbWVtYmVyLCBteSBnb2FsIGhlcmUgd2FzIG1lcmVseSB0byBk aXN0aW5ndWlzaAo+IGJldHdlZW4gaG9zdC0gYW5kIGd1ZXN0LXRyaWdnZXJlZCByZXNldHMgKHdo aWNoIGxpYnZpcnQgYW5kIGhpZ2hlcgo+IG1hbmFnZW1lbnQgdGFza3Mgd2FudCB0byBrbm93KQoK WWVwLCB0aGF0J3MgZmluZS4KCj4gcmF0aGVyIHRoYW4gd2hpY2ggb2YgbXVsdGlwbGUgcmVzZXQK PiBwYXRocyB3YXMgdGFrZW4gKEkgYWdyZWUgdGhhdCBpdCBpcyB1c2VmdWwgZHVyaW5nIGEgcWVt dSBkZWJ1ZyBzZXNzaW9uIC0KPiBidXQgdGhhdCdzIGEgZGlmZmVyZW50IGF1ZGllbmNlKS4gIEkg YWxzbyBkb24ndCBjb25zaWRlciBteXNlbGYgYW4KPiBleHBlcnQgaW4gdGhlIG1hbnkgd2F5cyB0 aGF0IHg4NiBjYW4gcmVzZXQgLSBpdCB3YXMgZWFzeSB0byBibGluZGx5Cj4gcmV3cml0ZSBxZW11 X3N5c3RlbV9zaHV0ZG93bl9yZXF1ZXN0KCkgaW50bwo+IHFlbXVfc3lzdGVtX3NodXRkb3duX3Jl cXVlc3QoU0hVVERPV05fQ0FVU0VfR1VFU1RfU0hVVERPV04pIGJhc2VkIHNvbGVseQo+IG9uIGRp cmVjdG9yeSwgYnV0IGl0IHdvdWxkIGJlIGhhcmRlciB0byBkaXN0aW5ndWlzaCB3aGljaCBvZiB0 aGUKPiBtdWx0aXBsZSBmaWxlcyBzaG91bGQgaGF2ZSB3aGljaCBmaW5lci1ncmFpbmVkIGNhdXNl LgoKWWVzLCBJJ20gYWxzbyBub3QgYW4gZXhwZXJ0IG9uIHg4NiByZXNldHMgLSBidXQgd2hlbiBJ IHdhcyBkZWJ1Z2dpbmcKSSBqdXN0IGFkZGVkIGEgdGFnIGluIGV2ZXJ5IHBsYWNlIGl0IGNhbGxl ZCB0aGUgcmVzZXQgY29kZS4KCkF0IGEgaGlnaGVyIGxldmVsLCB1c2luZyB5b3VyIHRhZ3MsIEkn bSBub3Qgc3VyZSB3aGVyZSBhIHJlc2V0IHRyaWdnZXJlZApieSBhIGZhdWx0IGRldGVjdGVkIGJ5 IHRoZSBoeXBlcnZpc29yIGxpdmVzIC0gZS5nLiBhbiB4ODYgdHJpcGxlIGZhdWx0CndoZXJlIHRo ZSBndWVzdCBzY3Jld3MgdXAgc28gYmFkbHkgdGhhdCBpdCBqdXN0IGdldHMgcmVzZXQuICBJcwp0 aGF0IGEgZ3Vlc3QtcmVzZXQgb3IgYSBndWVzdC1wYW5pYyBvciB3aGF0IC0gbmVpdGhlciBjYXNl CndhcyBhY3R1YWxseSBhc2tlZCBmb3IgYnkgdGhlIGd1ZXN0IGl0c2VsZi4KCkRhdmUKCgo+IAo+ IC0tIAo+IEVyaWMgQmxha2UsIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlcgo+IFJlZCBIYXQs IEluYy4gICAgICAgICAgICsxLTkxOS0zMDEtMzI2Ngo+IFZpcnR1YWxpemF0aW9uOiAgcWVtdS5v cmcgfCBsaWJ2aXJ0Lm9yZwo+IAoKCgotLQpEci4gRGF2aWQgQWxhbiBHaWxiZXJ0IC8gZGdpbGJl cnRAcmVkaGF0LmNvbSAvIE1hbmNoZXN0ZXIsIFVLCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK