From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=52406 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Px2RF-0005bG-PB for qemu-devel@nongnu.org; Tue, 08 Mar 2011 14:19:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Px2RE-0002el-NN for qemu-devel@nongnu.org; Tue, 08 Mar 2011 14:19:21 -0500 Received: from mail-iw0-f173.google.com ([209.85.214.173]:53803) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Px2RE-0002eZ-KI for qemu-devel@nongnu.org; Tue, 08 Mar 2011 14:19:20 -0500 Received: by iwl42 with SMTP id 42so6268859iwl.4 for ; Tue, 08 Mar 2011 11:19:19 -0800 (PST) Message-ID: <4D768134.9000006@codemonkey.ws> Date: Tue, 08 Mar 2011 13:19:16 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 00/22] QAPI Round 1 References: <1299460984-15849-1-git-send-email-aliguori@us.ibm.com> <4D7500C8.1080101@codemonkey.ws> <4D760F2B.7030004@redhat.com> <4D7630BA.4010609@us.ibm.com> <4D763311.5030905@redhat.com> <4D763525.2030700@codemonkey.ws> <4D763674.8000600@redhat.com> <4D7638BE.60808@codemonkey.ws> <4D763A61.2020809@redhat.com> <4D763F76.2020003@codemonkey.ws> <4D7642C1.90604@redhat.com> <4D764551.4000409@codemonkey.ws> <4D766B0E.9030908@redhat.com> In-Reply-To: <4D766B0E.9030908@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Stefan Hajnoczi , Markus Armbruster , qemu-devel@nongnu.org, Michael D Roth , Adam Litke , Luiz Capitulino On 03/08/2011 11:44 AM, Avi Kivity wrote: >> >> I'm not sure I see this as all that critical though. I sort of like >> the idea of it being transparent to the client whether a guest agent >> implements a command or QEMU does. > > A qemu command is guaranteed to be executed faithfully, modulo bugs > and runtime errors. A guest command is guaranteed to be executed (or > not) in the most hostile way possible to the management agent. It's > important to make that clear in the ABI. > > We should also have separate schemas, one including the other. So we > can have a monitor channel that only executes guest commands, for > instance. I need to think about about this a little more. Since libqmp would hide most of this, the user-visible details wouldn't really change. So while I understand and agree with your point, I don't think just changing the protocol like this is going to achieve the goal. >>> In addition to commands we may also implement a key-value store. A >>> large number of commands may be easy to implement using a single >>> key/value, and it's also easy to live migrate (key/values being >>> stored in but not understood by qemu). >> >> Do you mean the guest querying QEMU for key-values? QMP doesn't have >> a reverse direction RPC. It only has events which is one of the >> things that makes live migration work nicely. > > Both the guest and the management agent (and both can listen for > events). I don't see why guest->qemu RPC is problematic for migration > - at least when qemu terminates it. If it's terminated in QEMU, it's fine, but then it's not QMP anymore. Let me think about whether there's a way to achieve this without a guest->qemu RPC. Regards, Anthony Liguori