From: Luiz Capitulino <lcapitulino@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, avi@redhat.com
Subject: Re: [Qemu-devel] ANN: QEMU Monitor Protocol git tree
Date: Thu, 24 Sep 2009 16:09:39 -0300 [thread overview]
Message-ID: <20090924160939.228a41f9@doriath> (raw)
In-Reply-To: <87r5twqxo7.fsf@pike.pond.sub.org>
On Thu, 24 Sep 2009 15:28:40 +0200
Markus Armbruster <armbru@redhat.com> wrote:
> Luiz Capitulino <lcapitulino@redhat.com> writes:
>
> > On Thu, 24 Sep 2009 00:37:53 +0200
> > Markus Armbruster <armbru@redhat.com> wrote:
> >
> >> Luiz Capitulino <lcapitulino@redhat.com> writes:
> >>
> >> [...]
> >> > 2.2 Server Greeting
> >> > -------------------
> >> >
> >> > Right when connected the Server will issue a greeting message, which signals
> >> > that the connection has been successfully established and that the Server is
> >> > waiting for commands.
> >> >
> >> > The format is:
> >> >
> >> > { "QEMU": json-string, "QMP": json-string, "capabilities": json-array }
> >> >
> >> > Where,
> >> >
> >> > - The "QEMU" member contains the QEMU version
> >> > - The "QMP" member contains the QMP version
> >> > - The "capabilities" member specify the availability of features beyond the
> >> > baseline specification
> >>
> >> What about capability negotiation? Server offers capabilities, client
> >> can accept or decline them.
> >>
> >> [...]
> >
> > I think the easiest way to have this would be to add a
> > monitor command to disable capabilities. Like a command to
> > disable async messages.
>
> Greeting capabilities (for lack of a better word) are for the protocol.
> Changing protocol capabilities while you use the protocol is awkward.
> Better do it in an initial handshake.
Maybe it's better, but I'm wondering if it's worth it, considering the
implementation and usage "complexity".
> Case in point: if you disable asynchronous messages with a command, you
> still have to be prepared to receive one between initial handshake and
> completion of the disable command.
This is true, although I think it's a good practice for programs to
start QEMU in pause mode and only put it to run after some setup is
done.
This also has to be considered with the handshake approach, eg.
if QEMU is started before the application connects to it, we will
have a window of time where several things may have happened in
QEMU and this may affect the protocol. Async messages is an example.
> If I have to ignore them anyway, why bother with disabling them?
I can see two separate things here: 1. do we need/want the
handshake approach? 2. Should async messages be considered a
capability?
If disabling async messages is not needed, then it should
not be considered a capability.
> The problem becomes more serious if we ever want to add a capability
> that isn't fully backward compatible. Lack of feature negotiation
> limits protocol evolvability.
Why? Enabling 'what you want' as suggested by Avi doesn't have the
same end result?
next prev parent reply other threads:[~2009-09-24 19:09 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-22 1:44 [Qemu-devel] ANN: QEMU Monitor Protocol git tree Luiz Capitulino
2009-09-23 1:56 ` Anthony Liguori
2009-09-23 9:57 ` Daniel P. Berrange
2009-09-23 10:57 ` Avi Kivity
2009-09-23 13:40 ` [Qemu-devel] " Paolo Bonzini
2009-09-23 14:04 ` Avi Kivity
2009-09-23 15:19 ` Nathan Baum
2009-09-23 15:40 ` Luiz Capitulino
2009-09-23 18:15 ` Anthony Liguori
2009-09-23 18:36 ` Jamie Lokier
2009-09-23 18:45 ` Paolo Bonzini
2009-09-23 16:01 ` [Qemu-devel] " Markus Armbruster
2009-09-23 16:11 ` Luiz Capitulino
2009-09-23 18:15 ` Jamie Lokier
2009-09-23 18:18 ` Anthony Liguori
2009-09-23 17:08 ` Daniel P. Berrange
2009-09-23 19:07 ` Luiz Capitulino
2009-09-23 14:18 ` Luiz Capitulino
2009-09-23 18:21 ` Anthony Liguori
2009-09-23 10:08 ` Daniel P. Berrange
2009-09-23 14:21 ` Luiz Capitulino
2009-09-23 15:55 ` Markus Armbruster
2009-09-23 22:37 ` Markus Armbruster
2009-09-24 12:31 ` Luiz Capitulino
2009-09-24 12:44 ` Avi Kivity
2009-09-24 13:05 ` Luiz Capitulino
2009-09-24 13:07 ` Avi Kivity
2009-09-24 13:14 ` Luiz Capitulino
2009-11-11 9:59 ` [Qemu-devel] " Michael S. Tsirkin
2009-09-24 13:28 ` [Qemu-devel] " Markus Armbruster
2009-09-24 19:09 ` Luiz Capitulino [this message]
2009-11-11 10:03 ` [Qemu-devel] " Michael S. Tsirkin
2009-11-13 8:38 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090924160939.228a41f9@doriath \
--to=lcapitulino@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=avi@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).