On Mon, Jan 11, 2010 at 12:57:15PM -0600, Anthony Liguori wrote: > On 01/11/2010 12:34 PM, Luiz Capitulino wrote: > > Hi. > > > > We (Markus and I) are working on getting QMP forward compatibility > > support, > >supported. :) > > > > We have a plan for it and I'd like to ask the CC'ed people to review it. > > > > Needless to say, but the objective here is to add new commands, > > arguments, > >async messages and protocol features w/o breaking existing clients. > > > >General Plan > >------------ > > > >1. QMP should describe itself, ie. it should dump all accepted commands, > >their replies and arguments, async messages and protocol features. All in > >JSON format > > > >2. Protocol features are advertised by the (already existent) capabilities > >array, but are _disabled_ by default. The exception is async messages, > >which are _enabled_ by default > > Any reason to have an exception like this?
Personally I'd be fine with async events being off by default too. There's no point in me receiving events I'm not able to handle, so might as well only give me events I actually request. > >3. We should add command(s) to enable/disable protocol features > > > >4. Proper feature negotiation is done in pause mode. That's, clients > >interested in enabling new protocol features should start QEMU in > >pause mode and enable the features they are interested in using > > > > Why does this matter? > > We should be careful to support connecting to a VM long after it's been > started so any requirement like this is likely to cause trouble. Indeed, this won't work for libvirt. If you stop the libvirtd daemon while a guest is running, and then start the libvirtd daemon again, it will need to re-negotiate features while the guest is running. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|