From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 10.25.0.6 with SMTP id 6csp164547lfa; Tue, 9 May 2017 07:34:38 -0700 (PDT) X-Received: by 10.200.1.142 with SMTP id x14mr500473qtf.26.1494340478615; Tue, 09 May 2017 07:34:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494340478; cv=none; d=google.com; s=arc-20160816; b=O7e+LNBQKyD7yTHQXmoEaDqv15PPrV5dqS+f7/3YDxJ/KvDL3L8qNWRlNLPLSjjcvw pbnJOqrSq1GnEbcGV7jMZi0ocqCdkvSdCLDN5Rzf5mdLDW4oAdIzwoawZudLL7tRXlwi DowSNATmzrId3gaETzevKqbIkTIRC3uiGEBIgm+qtsUyMAw6/RSk3dxdqvjbfp2XBLXv 2R2F6GyL7bS4vVyOygirkxUf0SvdGSMgn6YT+DNSaQ+wFxh9M2yy3cejPvmQMsHbPmqg pduKU1Ou8lgdYD1TZ6BY4W753CumChFf4T4CJ9UhShYdJGhAm3t1w5qJV736VXQ1yM0W J9yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:mime-version:message-id :user-agent:references:lines:date:in-reply-to:to:from :arc-authentication-results; bh=aLeCVBJY8JNKwiSKqKvQ8elJH247QLpE4e7zIFWqWt4=; b=afchbBEAFNXlGPskZg1KEk/CNWBuKcxCIyLM6WsvTa/HRatL7MNh2eZRDzW4QPt7P+ fjk7rboH3Kte881UIyg84lVwfg5ZXYiUninG9r+Of6LGHpLuM9pg68R8z41k52RIqH3X 9nhBu2X/fWaAtupFconq6gX9yNM6VcWFhLh/cYjEX+oXYi05wagEJDaKXgsmuWA166oj Z93DJPc693aJQYXw/C/sBOmwLIVYEvPrGH/DE/SO9EkQ6IRFDsiLvdrDnKXJM5ajDrZO OPfOUmMPltKczAgGrIlU6ic6QOAQlzNjC7Ev2SgeNWr4AtZvN9GI76DwVD+PpagyO38X OwMg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id b4si174270qkd.303.2017.05.09.07.34.38 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 09 May 2017 07:34:38 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1]:37570 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d86Dm-0002Dh-5A for alex.bennee@linaro.org; Tue, 09 May 2017 10:34:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d86Dg-0002Db-8V for qemu-arm@nongnu.org; Tue, 09 May 2017 10:34:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d86Db-0002hl-Ua for qemu-arm@nongnu.org; Tue, 09 May 2017 10:34:32 -0400 Received: from oxygen.pond.sub.org ([144.76.244.19]:46288) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d86Db-0002bt-H2; Tue, 09 May 2017 10:34:27 -0400 Received: from blackfin.pond.sub.org (p2003007F8F538500DACB8AFFFEE0C842.dip0.t-ipconnect.de [IPv6:2003:7f:8f53:8500:dacb:8aff:fee0:c842]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by oxygen.pond.sub.org (Postfix) with ESMTPSA id B17672C450; Tue, 9 May 2017 16:34:15 +0200 (CEST) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 160AF11385E2; Tue, 9 May 2017 16:34:15 +0200 (CEST) From: Markus Armbruster To: Eric Blake In-Reply-To: <20170508211953.28017-4-eblake@redhat.com> (Eric Blake's message of "Mon, 8 May 2017 16:19:51 -0500") Date: Tue, 09 May 2017 13:56:46 +0200 References: <20170508211953.28017-1-eblake@redhat.com> <20170508211953.28017-4-eblake@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) Message-ID: <87efvyhzfc.fsf@dusky.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 144.76.244.19 Subject: Re: [Qemu-arm] [Qemu-devel] [PATCH v7 3/5] shutdown: Add source information to SHUTDOWN and RESET X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "open list:Overall" , "Michael S. Tsirkin" , Mark Cave-Ayland , qemu-devel@nongnu.org, Cornelia Huck , Gerd Hoffmann , Rob Herring , Stefano Stabellini , Magnus Damm , Alexander Graf , Christian Borntraeger , Anthony Perard , "open list:X86" , David Gibson , Artyom Tarasenko , Eduardo Habkost , Stefan Weil , alistair.francis@xilinx.com, "open list:Calxeda Highbank" , Jan Kiszka , Pavel Dovgalyuk , Paolo Bonzini , Yongbok Kim , Richard Henderson , Paul Burton , Max Filippov , Marcelo Tosatti , Michael Walle , "open list:Old World" , Igor Mammedov , Aurelien Jarno Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: 9BW59TvrkDaX Resending because first send didn't get through to some recipients... Eric Blake writes: > Time to wire up all the call sites that request a shutdown or > reset to use the enum added in the previous patch. > > It would have been less churn to keep the common case with no > arguments as meaning guest-triggered, and only modified the > host-triggered code paths, via a wrapper function, but then we'd > still have to audit that I didn't miss any host-triggered spots; > changing the signature forces us to double-check that I correctly > categorized all callers. > > Since command line options can change whether a guest reset request > causes an actual reset vs. a shutdown, it's easy to also add the > information to reset requests. > > Replay adds a FIXME to preserve the cause across the replay stream, > that will be tackled in the next patch. > > Signed-off-by: Eric Blake > Acked-by: David Gibson [ppc parts] > Reviewed-by: Mark Cave-Ayland [SPARC part] [...] > diff --git a/hw/acpi/core.c b/hw/acpi/core.c > index e890a5d..95fcac9 100644 > --- a/hw/acpi/core.c > +++ b/hw/acpi/core.c > @@ -561,7 +561,7 @@ static void acpi_pm1_cnt_write(ACPIREGS *ar, uint16_t val) > uint16_t sus_typ = (val >> 10) & 7; > switch(sus_typ) { > case 0: /* soft power off */ > - qemu_system_shutdown_request(); > + qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); > break; > case 1: > qemu_system_suspend_request(); > @@ -569,7 +569,7 @@ static void acpi_pm1_cnt_write(ACPIREGS *ar, uint16_t val) > default: > if (sus_typ == ar->pm1.cnt.s4_val) { /* S4 request */ > qapi_event_send_suspend_disk(&error_abort); > - qemu_system_shutdown_request(); > + qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); I'm fine with using SHUTDOWN_CAUSE_GUEST_SHUTDOWN for suspend, but have you considered SHUTDOWN_CAUSE_GUEST_SUSPEND? > } > break; > } [...] > diff --git a/qmp.c b/qmp.c > index ab74cd7..95949d0 100644 > --- a/qmp.c > +++ b/qmp.c > @@ -84,7 +84,7 @@ UuidInfo *qmp_query_uuid(Error **errp) > void qmp_quit(Error **errp) > { > no_shutdown = 0; > - qemu_system_shutdown_request(); > + qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_QMP); > } > > void qmp_stop(Error **errp) > @@ -105,7 +105,7 @@ void qmp_stop(Error **errp) > > void qmp_system_reset(Error **errp) > { > - qemu_system_reset_request(); > + qemu_system_reset_request(SHUTDOWN_CAUSE_HOST_QMP); This is the only place where we pass something other than SHUTDOWN_CAUSE_GUEST_RESET. We could avoid churn the obvious way, but I guess having the churn eases patch review. Okay. > } > > void qmp_system_powerdown(Error **erp) > diff --git a/replay/replay.c b/replay/replay.c > index f810628..604fa4f 100644 > --- a/replay/replay.c > +++ b/replay/replay.c > @@ -51,7 +51,8 @@ bool replay_next_event_is(int event) > switch (replay_state.data_kind) { > case EVENT_SHUTDOWN: > replay_finish_event(); > - qemu_system_shutdown_request(); > + /* FIXME - store actual reason */ > + qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_ERROR); The temporary replay breakage is no big deal. Still, can we avoid it by extending replay first, using a dummy value like SHUTDOWN_CAUSE_HOST_ERROR until the real cause becomes available? Not sure it's worth a respin, though. > break; > default: > /* clock, time_t, checkpoint and other events */ [...] Reviewed-by: Markus Armbruster From mboxrd@z Thu Jan 1 00:00:00 1970 From: Markus Armbruster Subject: Re: [Qemu-devel] [PATCH v7 3/5] shutdown: Add source information to SHUTDOWN and RESET Date: Tue, 09 May 2017 13:56:46 +0200 Message-ID: <87efvyhzfc.fsf@dusky.pond.sub.org> References: <20170508211953.28017-1-eblake@redhat.com> <20170508211953.28017-4-eblake@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Peter Maydell , "open list:Overall" , "Michael S. Tsirkin" , Mark Cave-Ayland , qemu-devel@nongnu.org, Cornelia Huck , Gerd Hoffmann , "Edgar E. Iglesias" , Rob Herring , Stefano Stabellini , Magnus Damm , Alexander Graf , Christian Borntraeger , Anthony Perard , "open list:X86" , David Gibson , Artyom Tarasenko , Eduardo Habkost , Stefan Weil , alistair.francis@xilinx.com, "open list:Calxeda Highbank" , Jan Kiszka , Pavel To: Eric Blake Return-path: In-Reply-To: <20170508211953.28017-4-eblake@redhat.com> (Eric Blake's message of "Mon, 8 May 2017 16:19:51 -0500") List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" List-Id: kvm.vger.kernel.org UmVzZW5kaW5nIGJlY2F1c2UgZmlyc3Qgc2VuZCBkaWRuJ3QgZ2V0IHRocm91Z2ggdG8gc29tZSBy ZWNpcGllbnRzLi4uCgpFcmljIEJsYWtlIDxlYmxha2VAcmVkaGF0LmNvbT4gd3JpdGVzOgoKPiBU aW1lIHRvIHdpcmUgdXAgYWxsIHRoZSBjYWxsIHNpdGVzIHRoYXQgcmVxdWVzdCBhIHNodXRkb3du IG9yCj4gcmVzZXQgdG8gdXNlIHRoZSBlbnVtIGFkZGVkIGluIHRoZSBwcmV2aW91cyBwYXRjaC4K Pgo+IEl0IHdvdWxkIGhhdmUgYmVlbiBsZXNzIGNodXJuIHRvIGtlZXAgdGhlIGNvbW1vbiBjYXNl IHdpdGggbm8KPiBhcmd1bWVudHMgYXMgbWVhbmluZyBndWVzdC10cmlnZ2VyZWQsIGFuZCBvbmx5 IG1vZGlmaWVkIHRoZQo+IGhvc3QtdHJpZ2dlcmVkIGNvZGUgcGF0aHMsIHZpYSBhIHdyYXBwZXIg ZnVuY3Rpb24sIGJ1dCB0aGVuIHdlJ2QKPiBzdGlsbCBoYXZlIHRvIGF1ZGl0IHRoYXQgSSBkaWRu J3QgbWlzcyBhbnkgaG9zdC10cmlnZ2VyZWQgc3BvdHM7Cj4gY2hhbmdpbmcgdGhlIHNpZ25hdHVy ZSBmb3JjZXMgdXMgdG8gZG91YmxlLWNoZWNrIHRoYXQgSSBjb3JyZWN0bHkKPiBjYXRlZ29yaXpl ZCBhbGwgY2FsbGVycy4KPgo+IFNpbmNlIGNvbW1hbmQgbGluZSBvcHRpb25zIGNhbiBjaGFuZ2Ug d2hldGhlciBhIGd1ZXN0IHJlc2V0IHJlcXVlc3QKPiBjYXVzZXMgYW4gYWN0dWFsIHJlc2V0IHZz LiBhIHNodXRkb3duLCBpdCdzIGVhc3kgdG8gYWxzbyBhZGQgdGhlCj4gaW5mb3JtYXRpb24gdG8g cmVzZXQgcmVxdWVzdHMuCj4KPiBSZXBsYXkgYWRkcyBhIEZJWE1FIHRvIHByZXNlcnZlIHRoZSBj YXVzZSBhY3Jvc3MgdGhlIHJlcGxheSBzdHJlYW0sCj4gdGhhdCB3aWxsIGJlIHRhY2tsZWQgaW4g dGhlIG5leHQgcGF0Y2guCj4KPiBTaWduZWQtb2ZmLWJ5OiBFcmljIEJsYWtlIDxlYmxha2VAcmVk aGF0LmNvbT4KPiBBY2tlZC1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIu aWQuYXU+IFtwcGMgcGFydHNdCj4gUmV2aWV3ZWQtYnk6IE1hcmsgQ2F2ZS1BeWxhbmQgPG1hcmsu Y2F2ZS1heWxhbmRAaWxhbmRlLmNvLnVrPiBbU1BBUkMgcGFydF0KWy4uLl0KPiBkaWZmIC0tZ2l0 IGEvaHcvYWNwaS9jb3JlLmMgYi9ody9hY3BpL2NvcmUuYwo+IGluZGV4IGU4OTBhNWQuLjk1ZmNh YzkgMTAwNjQ0Cj4gLS0tIGEvaHcvYWNwaS9jb3JlLmMKPiArKysgYi9ody9hY3BpL2NvcmUuYwo+ IEBAIC01NjEsNyArNTYxLDcgQEAgc3RhdGljIHZvaWQgYWNwaV9wbTFfY250X3dyaXRlKEFDUElS RUdTICphciwgdWludDE2X3QgdmFsKQo+ICAgICAgICAgIHVpbnQxNl90IHN1c190eXAgPSAodmFs ID4+IDEwKSAmIDc7Cj4gICAgICAgICAgc3dpdGNoKHN1c190eXApIHsKPiAgICAgICAgICBjYXNl IDA6IC8qIHNvZnQgcG93ZXIgb2ZmICovCj4gLSAgICAgICAgICAgIHFlbXVfc3lzdGVtX3NodXRk b3duX3JlcXVlc3QoKTsKPiArICAgICAgICAgICAgcWVtdV9zeXN0ZW1fc2h1dGRvd25fcmVxdWVz dChTSFVURE9XTl9DQVVTRV9HVUVTVF9TSFVURE9XTik7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ ICAgICAgICAgIGNhc2UgMToKPiAgICAgICAgICAgICAgcWVtdV9zeXN0ZW1fc3VzcGVuZF9yZXF1 ZXN0KCk7Cj4gQEAgLTU2OSw3ICs1NjksNyBAQCBzdGF0aWMgdm9pZCBhY3BpX3BtMV9jbnRfd3Jp dGUoQUNQSVJFR1MgKmFyLCB1aW50MTZfdCB2YWwpCj4gICAgICAgICAgZGVmYXVsdDoKPiAgICAg ICAgICAgICAgaWYgKHN1c190eXAgPT0gYXItPnBtMS5jbnQuczRfdmFsKSB7IC8qIFM0IHJlcXVl c3QgKi8KPiAgICAgICAgICAgICAgICAgIHFhcGlfZXZlbnRfc2VuZF9zdXNwZW5kX2Rpc2soJmVy cm9yX2Fib3J0KTsKPiAtICAgICAgICAgICAgICAgIHFlbXVfc3lzdGVtX3NodXRkb3duX3JlcXVl c3QoKTsKPiArICAgICAgICAgICAgICAgIHFlbXVfc3lzdGVtX3NodXRkb3duX3JlcXVlc3QoU0hV VERPV05fQ0FVU0VfR1VFU1RfU0hVVERPV04pOwoKSSdtIGZpbmUgd2l0aCB1c2luZyBTSFVURE9X Tl9DQVVTRV9HVUVTVF9TSFVURE9XTiBmb3Igc3VzcGVuZCwgYnV0IGhhdmUKeW91IGNvbnNpZGVy ZWQgU0hVVERPV05fQ0FVU0VfR1VFU1RfU1VTUEVORD8KCj4gICAgICAgICAgICAgIH0KPiAgICAg ICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgfQpbLi4uXQo+IGRpZmYgLS1naXQgYS9xbXAuYyBi L3FtcC5jCj4gaW5kZXggYWI3NGNkNy4uOTU5NDlkMCAxMDA2NDQKPiAtLS0gYS9xbXAuYwo+ICsr KyBiL3FtcC5jCj4gQEAgLTg0LDcgKzg0LDcgQEAgVXVpZEluZm8gKnFtcF9xdWVyeV91dWlkKEVy cm9yICoqZXJycCkKPiAgdm9pZCBxbXBfcXVpdChFcnJvciAqKmVycnApCj4gIHsKPiAgICAgIG5v X3NodXRkb3duID0gMDsKPiAtICAgIHFlbXVfc3lzdGVtX3NodXRkb3duX3JlcXVlc3QoKTsKPiAr ICAgIHFlbXVfc3lzdGVtX3NodXRkb3duX3JlcXVlc3QoU0hVVERPV05fQ0FVU0VfSE9TVF9RTVAp Owo+ICB9Cj4KPiAgdm9pZCBxbXBfc3RvcChFcnJvciAqKmVycnApCj4gQEAgLTEwNSw3ICsxMDUs NyBAQCB2b2lkIHFtcF9zdG9wKEVycm9yICoqZXJycCkKPgo+ICB2b2lkIHFtcF9zeXN0ZW1fcmVz ZXQoRXJyb3IgKiplcnJwKQo+ICB7Cj4gLSAgICBxZW11X3N5c3RlbV9yZXNldF9yZXF1ZXN0KCk7 Cj4gKyAgICBxZW11X3N5c3RlbV9yZXNldF9yZXF1ZXN0KFNIVVRET1dOX0NBVVNFX0hPU1RfUU1Q KTsKClRoaXMgaXMgdGhlIG9ubHkgcGxhY2Ugd2hlcmUgd2UgcGFzcyBzb21ldGhpbmcgb3RoZXIg dGhhbgpTSFVURE9XTl9DQVVTRV9HVUVTVF9SRVNFVC4gIFdlIGNvdWxkIGF2b2lkIGNodXJuIHRo ZSBvYnZpb3VzIHdheSwgYnV0IEkKZ3Vlc3MgaGF2aW5nIHRoZSBjaHVybiBlYXNlcyBwYXRjaCBy ZXZpZXcuICBPa2F5LgoKPiAgfQo+Cj4gIHZvaWQgcW1wX3N5c3RlbV9wb3dlcmRvd24oRXJyb3Ig KiplcnApCj4gZGlmZiAtLWdpdCBhL3JlcGxheS9yZXBsYXkuYyBiL3JlcGxheS9yZXBsYXkuYwo+ IGluZGV4IGY4MTA2MjguLjYwNGZhNGYgMTAwNjQ0Cj4gLS0tIGEvcmVwbGF5L3JlcGxheS5jCj4g KysrIGIvcmVwbGF5L3JlcGxheS5jCj4gQEAgLTUxLDcgKzUxLDggQEAgYm9vbCByZXBsYXlfbmV4 dF9ldmVudF9pcyhpbnQgZXZlbnQpCj4gICAgICAgICAgc3dpdGNoIChyZXBsYXlfc3RhdGUuZGF0 YV9raW5kKSB7Cj4gICAgICAgICAgY2FzZSBFVkVOVF9TSFVURE9XTjoKPiAgICAgICAgICAgICAg cmVwbGF5X2ZpbmlzaF9ldmVudCgpOwo+IC0gICAgICAgICAgICBxZW11X3N5c3RlbV9zaHV0ZG93 bl9yZXF1ZXN0KCk7Cj4gKyAgICAgICAgICAgIC8qIEZJWE1FIC0gc3RvcmUgYWN0dWFsIHJlYXNv biAqLwo+ICsgICAgICAgICAgICBxZW11X3N5c3RlbV9zaHV0ZG93bl9yZXF1ZXN0KFNIVVRET1dO X0NBVVNFX0hPU1RfRVJST1IpOwoKVGhlIHRlbXBvcmFyeSByZXBsYXkgYnJlYWthZ2UgaXMgbm8g YmlnIGRlYWwuICBTdGlsbCwgY2FuIHdlIGF2b2lkIGl0IGJ5CmV4dGVuZGluZyByZXBsYXkgZmly c3QsIHVzaW5nIGEgZHVtbXkgdmFsdWUgbGlrZQpTSFVURE9XTl9DQVVTRV9IT1NUX0VSUk9SIHVu dGlsIHRoZSByZWFsIGNhdXNlIGJlY29tZXMgYXZhaWxhYmxlPyAgTm90CnN1cmUgaXQncyB3b3J0 aCBhIHJlc3BpbiwgdGhvdWdoLgoKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgZGVm YXVsdDoKPiAgICAgICAgICAgICAgLyogY2xvY2ssIHRpbWVfdCwgY2hlY2twb2ludCBhbmQgb3Ro ZXIgZXZlbnRzICovClsuLi5dCgpSZXZpZXdlZC1ieTogTWFya3VzIEFybWJydXN0ZXIgPGFybWJy dUByZWRoYXQuY29tPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47310) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d86Dl-0002ET-Q8 for qemu-devel@nongnu.org; Tue, 09 May 2017 10:34:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d86Dh-0002lU-NP for qemu-devel@nongnu.org; Tue, 09 May 2017 10:34:37 -0400 From: Markus Armbruster In-Reply-To: <20170508211953.28017-4-eblake@redhat.com> (Eric Blake's message of "Mon, 8 May 2017 16:19:51 -0500") Date: Tue, 09 May 2017 13:56:46 +0200 References: <20170508211953.28017-1-eblake@redhat.com> <20170508211953.28017-4-eblake@redhat.com> Message-ID: <87efvyhzfc.fsf@dusky.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH v7 3/5] shutdown: Add source information to SHUTDOWN and RESET List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org, Peter Maydell , "open list:Overall" , "Michael S. Tsirkin" , Mark Cave-Ayland , Alexander Graf , Yongbok Kim , Gerd Hoffmann , "Edgar E. Iglesias" , Rob Herring , Stefano Stabellini , Magnus Damm , Christian Borntraeger , Anthony Perard , "open list:X86" , Richard Henderson , Artyom Tarasenko , Eduardo Habkost , Stefan Weil , alistair.francis@xilinx.com, "open list:Calxeda Highbank" , Jan Kiszka , Pavel Dovgalyuk , Igor Mammedov , Cornelia Huck , David Gibson , Paul Burton , Max Filippov , Marcelo Tosatti , Michael Walle , "open list:Old World" , Paolo Bonzini , Aurelien Jarno Resending because first send didn't get through to some recipients... Eric Blake writes: > Time to wire up all the call sites that request a shutdown or > reset to use the enum added in the previous patch. > > It would have been less churn to keep the common case with no > arguments as meaning guest-triggered, and only modified the > host-triggered code paths, via a wrapper function, but then we'd > still have to audit that I didn't miss any host-triggered spots; > changing the signature forces us to double-check that I correctly > categorized all callers. > > Since command line options can change whether a guest reset request > causes an actual reset vs. a shutdown, it's easy to also add the > information to reset requests. > > Replay adds a FIXME to preserve the cause across the replay stream, > that will be tackled in the next patch. > > Signed-off-by: Eric Blake > Acked-by: David Gibson [ppc parts] > Reviewed-by: Mark Cave-Ayland [SPARC part] [...] > diff --git a/hw/acpi/core.c b/hw/acpi/core.c > index e890a5d..95fcac9 100644 > --- a/hw/acpi/core.c > +++ b/hw/acpi/core.c > @@ -561,7 +561,7 @@ static void acpi_pm1_cnt_write(ACPIREGS *ar, uint16_t val) > uint16_t sus_typ = (val >> 10) & 7; > switch(sus_typ) { > case 0: /* soft power off */ > - qemu_system_shutdown_request(); > + qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); > break; > case 1: > qemu_system_suspend_request(); > @@ -569,7 +569,7 @@ static void acpi_pm1_cnt_write(ACPIREGS *ar, uint16_t val) > default: > if (sus_typ == ar->pm1.cnt.s4_val) { /* S4 request */ > qapi_event_send_suspend_disk(&error_abort); > - qemu_system_shutdown_request(); > + qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); I'm fine with using SHUTDOWN_CAUSE_GUEST_SHUTDOWN for suspend, but have you considered SHUTDOWN_CAUSE_GUEST_SUSPEND? > } > break; > } [...] > diff --git a/qmp.c b/qmp.c > index ab74cd7..95949d0 100644 > --- a/qmp.c > +++ b/qmp.c > @@ -84,7 +84,7 @@ UuidInfo *qmp_query_uuid(Error **errp) > void qmp_quit(Error **errp) > { > no_shutdown = 0; > - qemu_system_shutdown_request(); > + qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_QMP); > } > > void qmp_stop(Error **errp) > @@ -105,7 +105,7 @@ void qmp_stop(Error **errp) > > void qmp_system_reset(Error **errp) > { > - qemu_system_reset_request(); > + qemu_system_reset_request(SHUTDOWN_CAUSE_HOST_QMP); This is the only place where we pass something other than SHUTDOWN_CAUSE_GUEST_RESET. We could avoid churn the obvious way, but I guess having the churn eases patch review. Okay. > } > > void qmp_system_powerdown(Error **erp) > diff --git a/replay/replay.c b/replay/replay.c > index f810628..604fa4f 100644 > --- a/replay/replay.c > +++ b/replay/replay.c > @@ -51,7 +51,8 @@ bool replay_next_event_is(int event) > switch (replay_state.data_kind) { > case EVENT_SHUTDOWN: > replay_finish_event(); > - qemu_system_shutdown_request(); > + /* FIXME - store actual reason */ > + qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_ERROR); The temporary replay breakage is no big deal. Still, can we avoid it by extending replay first, using a dummy value like SHUTDOWN_CAUSE_HOST_ERROR until the real cause becomes available? Not sure it's worth a respin, though. > break; > default: > /* clock, time_t, checkpoint and other events */ [...] Reviewed-by: Markus Armbruster