From: Luiz Capitulino <lcapitulino@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: bazulay@redhat.com, juzhang@redhat.com,
Avi Kivity <avi@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc
Date: Fri, 14 May 2010 12:07:23 -0300 [thread overview]
Message-ID: <20100514120723.5ac98ae6@redhat.com> (raw)
In-Reply-To: <m37hn6ri66.fsf@blackfin.pond.sub.org>
On Fri, 14 May 2010 10:39:29 +0200
Markus Armbruster <armbru@redhat.com> wrote:
> Luiz Capitulino <lcapitulino@redhat.com> writes:
>
> > On Thu, 13 May 2010 16:48:13 +0300
> > Avi Kivity <avi@redhat.com> wrote:
> >
> >> On 05/05/2010 10:11 PM, Luiz Capitulino wrote:
> >> > One of the most important missing feature in QMP today is its
> >> > supported commands documentation.
> >> >
> >> > The plan is to make it part of self-description support, however
> >> > self-description is a big task we have been postponing for a
> >> > long time now and still don't know when it's going to be done.
> >> >
> >> > In order not to compromise QMP adoption and make users' life easier,
> >> > this commit adds a simple text documentation which fully describes
> >> > all QMP supported commands.
> >> >
> >> > This is not ideal for a number of reasons (harder to maintain,
> >> > text-only, etc) but does improve the current situation.
> [...]
> >> > +pmemsave
> >> > +--------
> >> > +
> >> > +Save to disk physical memory dump starting at 'val' of size 'size'.
> >> > +
> >> > +Arguments:
> >> > +
> >> > +- "val": the starting address (json-int)
> >> >
> >>
> >> Why "val" instead of "address" or "physical-address"?
> >
> > Mea culpa, for this and most inconsistencies you find in the protocol.
> >
> > The reason is that I did a lot of conversions in a hurry, so that
> > we could get libvirt working under QMP as soon as possible.
> >
> > Unfortunately, some bad names and some bad behaviors from the user
> > Monitor leaked into QMP. Lesson learned, although sometimes it's very
> > difficult to define what a name/behavior should be in QMP.
>
> Once we declare QMP stable, we're stuck with bad names forever. So
> better fix them before we stabilize. Best to fix them all in one go,
> and prepare the (hopefully straightforward) libvirt patch to go with it.
I think we have three kinds of things to be fixed. If we do it right
they will cause breakage to libvirt, but sometimes it's possible to
fix them in a compatible way:
1) Simple renames
2) Bad user Monitor commands exposed in QMP
3) Bad/incomplete design decisions
Doing 1) is easy, you have been fixing 2) for some commands, although
I'm not sure what we should do for do_change().
Now, 3) concerns me more. We have the QError stuff and events. What
concerns me is that we're likely going to work on this in hurry again..
The problem with events is that today, they look like this:
{ "event": "VNC_CONNECTED",
"data": {
"server": { "auth": "sasl", "family": "ipv4",
"service": "5901", "host": "0.0.0.0" },
"client": { "family": "ipv4", "service": "58425",
"host": "127.0.0.1" } },
"timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
Which means that a subsystem/driver/whatever which needs to report
multiple 'actions', will have to do so through multiple events. For
example, vnc has: VNC_CONNECTED, VNC_DISCONNECTED and VNC_INITIALIZED.
A simple solution would be to add a 'subsystem' member, like:
{ "event": "CONNECTED", "subsystem": "vnc" }
But this has a number of small problems too, like a specific driver
is not a "subsystem" and what's the subsystem for events like SHUTDOWN?
Anthony has suggested integrating with qdev, which is something I
think we should do, but alone it doesn't fix the problem explained above.
We had this discussion when the vnc events were introduced, but we
decided to wait for other events to think better about this. Events
have grown a little already and we have spice and migration in the queue..
next prev parent reply other threads:[~2010-05-14 15:07 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-05 19:11 [Qemu-devel] [PATCH v2 0/2]: QMP: Commands doc Luiz Capitulino
2010-05-05 19:11 ` [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc Luiz Capitulino
2010-05-12 16:48 ` Markus Armbruster
2010-05-12 21:17 ` Luiz Capitulino
2010-05-13 7:01 ` Markus Armbruster
2010-05-13 13:15 ` Luiz Capitulino
2010-05-14 11:29 ` Kevin Wolf
2010-05-13 13:48 ` Avi Kivity
2010-05-13 14:55 ` Luiz Capitulino
2010-05-13 15:01 ` Daniel P. Berrange
2010-05-13 16:23 ` Avi Kivity
2010-05-13 21:57 ` Luiz Capitulino
2010-05-14 8:33 ` Markus Armbruster
2010-05-14 16:42 ` Avi Kivity
2010-05-14 17:06 ` Markus Armbruster
2010-05-13 15:05 ` Avi Kivity
2010-05-14 8:39 ` Markus Armbruster
2010-05-14 15:07 ` Luiz Capitulino [this message]
2010-05-14 8:50 ` Markus Armbruster
2010-05-14 15:43 ` Avi Kivity
2010-05-14 17:03 ` Markus Armbruster
2010-05-14 17:09 ` Avi Kivity
2010-05-17 8:27 ` Markus Armbruster
2010-05-17 9:09 ` Avi Kivity
2010-05-17 11:19 ` Markus Armbruster
2010-05-17 18:01 ` Anthony Liguori
2010-05-17 19:21 ` Gerd Hoffmann
2010-05-18 6:55 ` Avi Kivity
2010-05-14 22:54 ` Luiz Capitulino
2010-05-15 6:19 ` Avi Kivity
2010-05-17 8:27 ` Markus Armbruster
2010-05-17 18:10 ` Anthony Liguori
2010-05-17 18:12 ` Avi Kivity
2010-05-18 9:51 ` Markus Armbruster
2010-05-18 12:45 ` Luiz Capitulino
2010-05-14 8:52 ` Markus Armbruster
2010-05-14 16:52 ` [Qemu-devel] " Jan Kiszka
2010-05-14 17:01 ` Avi Kivity
2010-05-14 17:02 ` Avi Kivity
2010-05-14 17:08 ` Jan Kiszka
2010-05-14 17:12 ` Avi Kivity
2010-05-14 23:10 ` Luiz Capitulino
2010-05-15 8:42 ` Jan Kiszka
2010-05-17 13:22 ` Luiz Capitulino
2010-05-18 11:21 ` Markus Armbruster
2010-05-18 12:48 ` Luiz Capitulino
2010-05-05 19:11 ` [Qemu-devel] [PATCH 2/2] Monitor: Drop QMP documentation from code Luiz Capitulino
-- strict thread matches above, loose matches on Subject: below --
2010-04-30 17:03 [Qemu-devel] [PATCH 0/2] QMP: Commands doc Luiz Capitulino
2010-04-30 17:03 ` [Qemu-devel] [PATCH 1/2] QMP: Introduce commands doc Luiz Capitulino
2010-05-03 16:24 ` Markus Armbruster
2010-05-04 21:58 ` Luiz Capitulino
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=20100514120723.5ac98ae6@redhat.com \
--to=lcapitulino@redhat.com \
--cc=armbru@redhat.com \
--cc=avi@redhat.com \
--cc=bazulay@redhat.com \
--cc=juzhang@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).