All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: mdroth@linux.vnet.ibm.com, kwolf@redhat.com,
	qemu-devel@nongnu.org, lcapitulino@redhat.com
Subject: Re: [Qemu-devel] [PATCH 07/11] qmp: Wean off qerror_report()
Date: Mon, 15 Jun 2015 16:08:07 +0100	[thread overview]
Message-ID: <20150615150807.GD12553@stefanha-thinkpad.redhat.com> (raw)
In-Reply-To: <1434205258-1932-8-git-send-email-armbru@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2534 bytes --]

On Sat, Jun 13, 2015 at 04:20:54PM +0200, Markus Armbruster wrote:
> The traditional QMP command handler interface
> 
>     int qmp_FOO(Monitor *mon, const QDict *params, QObject **ret_data);
> 
> doesn't provide for returning an Error object.  Instead, the handler
> is expected to stash it in the monitor with qerror_report().
> 
> When we rebased QMP on top of QAPI, we didn't change this interface.
> Instead, commit 776574d introduced "middle mode" as a temporary aid
> for converting existing QMP commands to QAPI one by one.  More than
> three years later, we're still using it.
> 
> Middle mode has two effects:
> 
> * Instead of the native input marshallers
> 
>       static void qmp_marshal_input_FOO(QDict *, QObject **, Error **)
> 
>   it generates input marshallers conforming to the traditional QMP
>   command handler interface.
> 
> * It suppresses generation of code to register them with
>   qmp_register_command()
> 
>   This permits giving them internal linkage.
> 
> As long as we need qmp-commands.hx, we can't use the registry behind
> qmp_register_command(), so the latter has to stay for now.
> 
> The former has to go to get rid of qerror_report().  Changing all QMP
> commands to fit the QAPI mold in one go was impractical back when we
> started, but by now there are just a few stragglers left:
> do_qmp_capabilities(), qmp_qom_set(), qmp_qom_get(), qmp_object_add(),
> qmp_netdev_add(), do_device_add().
> 
> Switch middle mode to generate native input marshallers, and adapt the
> stragglers.  Simplifies both the monitor code and the stragglers.
> 
> Rename do_qmp_capabilities() to qmp_capabilities(), and
> do_device_add() to qmp_device_add, because that's how QMP command
> handlers are named today.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  hmp.c                     |  5 ++++-
>  include/monitor/monitor.h |  7 +++---
>  include/monitor/qdev.h    |  3 ++-
>  include/net/net.h         |  2 +-
>  monitor.c                 | 24 ++++++---------------
>  net/net.c                 | 16 ++++++--------
>  qdev-monitor.c            | 15 ++++++-------
>  qmp-commands.hx           |  4 ++--
>  qmp.c                     | 55 +++++++++++------------------------------------
>  scripts/qapi-commands.py  | 41 ++++++-----------------------------
>  util/qemu-error.c         |  4 ++--
>  11 files changed, 50 insertions(+), 126 deletions(-)

Net portions look good.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>

[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]

  reply	other threads:[~2015-06-15 15:08 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-13 14:20 [Qemu-devel] [PATCH 00/11] Sprint to the finish: purge QError Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 01/11] QemuOpts: Wean off qerror_report_err() Markus Armbruster
2015-06-14  2:57   ` Eric Blake
2015-06-16 10:58     ` Markus Armbruster
2015-06-15 16:19   ` Stefan Hajnoczi
2015-06-13 14:20 ` [Qemu-devel] [PATCH 02/11] vl: Avoid qerror_report() outside QMP command handlers Markus Armbruster
2015-06-14  3:09   ` Eric Blake
2015-06-16 12:00     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 03/11] vl: Use error_report() for --display errors Markus Armbruster
2015-06-15 12:49   ` Eric Blake
2015-06-13 14:20 ` [Qemu-devel] [PATCH 04/11] qerror: Eliminate QERR_DEVICE_NOT_FOUND Markus Armbruster
2015-06-15 13:59   ` Eric Blake
2015-06-16 12:26     ` Markus Armbruster
2015-06-15 15:13   ` Stefan Hajnoczi
2015-06-15 15:18   ` Luiz Capitulino
2015-06-15 20:33     ` Eric Blake
2015-06-16 12:28       ` Markus Armbruster
2015-06-15 20:41     ` Peter Maydell
2015-06-16 12:28       ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 05/11] qerror: Clean up QERR_ macros to expand into a single string Markus Armbruster
2015-06-15 15:12   ` Stefan Hajnoczi
2015-06-15 16:09   ` Eric Blake
2015-06-16 12:45     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 06/11] tpm: Avoid qerror_report() outside QMP command handlers Markus Armbruster
2015-06-15 20:37   ` Eric Blake
2015-06-16 13:07     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 07/11] qmp: Wean off qerror_report() Markus Armbruster
2015-06-15 15:08   ` Stefan Hajnoczi [this message]
2015-06-15 20:56   ` Eric Blake
2015-06-16 12:54     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 08/11] qerror: Finally unused, clean up Markus Armbruster
2015-06-15 21:05   ` Eric Blake
2015-06-13 14:20 ` [Qemu-devel] [PATCH 09/11] qerror: Move #include out of qerror.h Markus Armbruster
2015-06-15 15:08   ` Stefan Hajnoczi
2015-06-15 21:37   ` Eric Blake
2015-06-13 14:20 ` [Qemu-devel] [PATCH 10/11] Include qapi/qmp/qerror.h exactly where needed Markus Armbruster
2015-06-15 15:09   ` Stefan Hajnoczi
2015-06-15 21:38   ` Eric Blake
2015-06-16 12:58     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 11/11] Include monitor/monitor.h " Markus Armbruster
2015-06-15 15:09   ` Stefan Hajnoczi
2015-06-15 21:40   ` Eric Blake
2015-06-15 16:03 ` [Qemu-devel] [PATCH 00/11] Sprint to the finish: purge QError Luiz Capitulino
2015-06-16 13:08   ` Markus Armbruster
2015-06-16 13:35     ` 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=20150615150807.GD12553@stefanha-thinkpad.redhat.com \
    --to=stefanha@redhat.com \
    --cc=armbru@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=mdroth@linux.vnet.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.