From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=56944 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PsKzK-0006Ln-LS for qemu-devel@nongnu.org; Wed, 23 Feb 2011 15:07:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PsKzA-0004L1-9r for qemu-devel@nongnu.org; Wed, 23 Feb 2011 15:06:57 -0500 Received: from mail-vx0-f173.google.com ([209.85.220.173]:35346) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PsKzA-0004Kw-53 for qemu-devel@nongnu.org; Wed, 23 Feb 2011 15:06:56 -0500 Received: by vxb41 with SMTP id 41so3083367vxb.4 for ; Wed, 23 Feb 2011 12:06:55 -0800 (PST) Message-ID: <4D6568E1.4060601@codemonkey.ws> Date: Wed, 23 Feb 2011 14:06:57 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [patch 2/3] Add support for live block copy References: <20110222170004.808373778@redhat.com> <20110222170115.710717278@redhat.com> <4D642181.4080509@codemonkey.ws> <20110222210735.GA9372@amt.cnet> <4D64266A.3060106@codemonkey.ws> <20110222230935.GA11082@amt.cnet> <4D644343.4050800@codemonkey.ws> <4D65051A.6070707@redhat.com> <4D651B20.70405@codemonkey.ws> <4D652852.60505@redhat.com> In-Reply-To: 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: Markus Armbruster Cc: Jes.Sorensen@redhat.com, Marcelo Tosatti , Avi Kivity , qemu-devel@nongnu.org On 02/23/2011 11:26 AM, Markus Armbruster wrote: >> I don't think it's reasonable to have three different ways to interact >> with qemu, all needed: the command line, reading and writing the >> stateful config file, and the monitor. I'd rather push for starting >> qemu with a blank guest and assembling (cold-plugging) all the >> hardware via the monitor before starting the guest. >> > Exactly. And qdev has brought his within our reach. > Actually, QMP is the star of the show here, not qdev. The way we get here is by incrementally converting the option handling to be qmp calls. For instance, instead of: case QEMU_OPTION_name: qemu_name = optarg; break; We do: case QEMU_OPTION_name: qmp_set_name(optarg, NULL); break; When we can compile vl.c with nothing more than QMP dependencies, we've achieved the goals here. This will mean adding a lot of new QMP commands. There are some command line options that must be handled before the machine is initialized and QMP is normally run. For 0.16, we can introduce a new QMP mode whereas the event loop gets to run before doing machine init and explicit create_machine() command is needed. This is the final bit that will be needed to realize this goal. A lot of good things come out of this. Quite a lot of these new commands don't strictly need to run before machine init (like -name) which means we'll get the ability to change a lot of parameters without rebooting the guest which couldn't be changed before. And this is all incremental stuff that can be done in parallel of the QAPI work. We just need to do the work of adding the function calls (or function call wrappers where appropriate). Regards, Anthony Liguori > [...] > >