From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41262) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XC8aY-00059z-1s for qemu-devel@nongnu.org; Tue, 29 Jul 2014 10:41:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XC8aS-0000Sa-Cy for qemu-devel@nongnu.org; Tue, 29 Jul 2014 10:41:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50782) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XC8aS-0000SU-49 for qemu-devel@nongnu.org; Tue, 29 Jul 2014 10:41:08 -0400 From: Markus Armbruster References: <1406219965-13214-1-git-send-email-stefanha@redhat.com> <1406219965-13214-3-git-send-email-stefanha@redhat.com> <87ppgtvovi.fsf@blackfin.pond.sub.org> <53D6D7EC.7090602@redhat.com> <8761igy9qn.fsf@blackfin.pond.sub.org> <53D79A8A.9060500@redhat.com> Date: Tue, 29 Jul 2014 16:41:03 +0200 In-Reply-To: <53D79A8A.9060500@redhat.com> (Eric Blake's message of "Tue, 29 Jul 2014 06:58:50 -0600") Message-ID: <878uncdy80.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH 2/3] qemu-char: add -chardev exit-on-eof option List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: Anthony Liguori , Andreas Faerber , Stefan Hajnoczi , qemu-devel@nongnu.org Eric Blake writes: > On 07/29/2014 12:12 AM, Markus Armbruster wrote: > >>> Libvirt probably won't use it for normal guests (we don't want to kill >>> qemu just because the monitor disconnects), but does have the notion of >>> an autodestroy guest where it might be useful (we WANT the guest to go >>> away if libvirtd dies early). In fact, autodestroy guests are used >>> during migration - we want to kill qemu on the destination side if >>> libvirtd dies before the source side finishes sending the migration >>> stream. But in that scenario, once migration succeeds, libvirt has to >>> be able to convert an autodestroy guest back into a normal guest that no >>> longer disappears when libvirtd does; would this be something that QMP >>> can toggle the state of this attribute on the fly? Perhaps through qom-set? >> >> After migration completes, execution moves from source to target. >> Wouldn't you want to switch off target auto-destruct together with that >> move, atomically? > > Libvirt starts the destination with -S, and migration can't complete > until libvirt resumes the destination CPUs with 'cont'. Libvirt's > current timing of releasing auto-destruct is based on handshaking > between source and destination; it occurs after source claims migration > is done but before resuming CPUs on the destination, which satisfies the > atomicity that you correctly observed to be necessary. Makes sense, thanks. >>> However, we also have precedence of actions in QAPI that are very >>> unlikely to be used outside of qtest, but which are not marked >>> experimental; for example, the 'Abort' action in 'transaction' will >>> probably never be used by libvirt >> >> Arguably not a conscious decision to make it ABI forever, more a case of >> nobody thought about *not* making it ABI :) > > Added in June 2013; and we *did* have a discussion on whether to hide > the transaction name at the time... > https://lists.gnu.org/archive/html/qemu-devel/2013-06/msg03281.html I stand corrected. >> I don't really mind this instance, but I'm a bit concerned about rank >> ABI growth. > > And that's a good position to maintain - it's always good to justify new > knobs, especially since once they are ABI, it's harder to refactor > around them. Exactly.