All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: "Lluís Vilanova" <vilanova@ac.upc.edu>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 14/22] instrument: [qmp, qapi] Add control interface
Date: Tue, 26 Mar 2013 08:52:55 -0600	[thread overview]
Message-ID: <5151B647.6070900@redhat.com> (raw)
In-Reply-To: <20130326140139.4471.51043.stgit@fimbulvetr.bsc.es>

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

On 03/26/2013 08:01 AM, Lluís Vilanova wrote:
> Add QMP commands to control (un)loading of dynamic instrumentation library.
> 
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> ---
>  include/qapi/qmp/qerror.h   |    9 +++++
>  instrument/Makefile.objs    |    1 +
>  instrument/qapi-schema.json |   33 ++++++++++++++++++++
>  instrument/qmp.c            |   59 ++++++++++++++++++++++++++++++++++++
>  qapi-schema.json            |    2 +
>  qmp-commands.hx             |   71 +++++++++++++++++++++++++++++++++++++++++++
>  qmp.c                       |    4 ++
>  7 files changed, 179 insertions(+)
>  create mode 100644 instrument/qapi-schema.json
>  create mode 100644 instrument/qmp.c
> 

> +++ b/instrument/qapi-schema.json
> @@ -0,0 +1,33 @@
> +# *-*- Mode: Python -*-*
> +
> +##
> +# @instr-dynamic:
> +#
> +# Whether dynamic trace instrumentation is available.
> +#
> +# Since: 1.4

1.5

> +##
> +{ 'command': 'instr-dynamic',
> +  'returns': 'bool' }
> +
> +##
> +# @instr-load:
> +#
> +# Load a dynamic instrumentation library.
> +#
> +# @path: path to the dynamic instrumentation library
> +# @args: arguments to the dynamic instrumentation library

No trailing underscore here...

> +#
> +# Since: 1.4

1.5

> +##
> +{ 'command': 'instr-load',
> +  'data':    { 'path': 'str', 'args_': 'str' } }

...but there is one here.  Something is wrong.  Furthermore, this is
gross - how does the receiver know how to break args into chunks?  This
should be '*args':['str'], taking an optional array of args (omitting is
the same as a 0-length array).

> +##
> +# @instr-unload:
> +#
> +# Unload the current dynamic instrumentation library.
> +#
> +# Since: 1.4

1.5

> +##
> +{ 'command': 'instr-unload' }

Is it possible to load more than one library at a time?  If so, then
instr-load needs to return a handle, and instr-unload needs to take a
handle as an argument.  Also, a query-instr command might be useful for
showing which library (or libraries) are loaded.

> +++ b/instrument/qmp.c
> @@ -0,0 +1,59 @@
> +/*
> + * QMP interface for dynamic trace instrumentation control commands.
> + *
> + * Copyright (C) 2012 Lluís Vilanova <vilanova@ac.upc.edu>

It's 2013, now.

> +++ b/qapi-schema.json
> @@ -2360,6 +2360,8 @@
>  ##
>  { 'command': 'device_del', 'data': {'id': 'str'} }
>  
> +input("instrument/qapi-schema.json")
> +
>  ##
>  # @dump-guest-memory

Unusual placement, having it in the middle of the file in no particular
alphabetic ordering.  I would typically expect to see includes done at
the beginning, or maybe at the end, or at least in alphabetical order
where the 'instr-*' commands would fall (but the file is already messy,
so not entirely your fault).


> +instr-load
> +----------
> +
> +Load a dynamic instrumentation library.
> +
> +Arguments:
> +
> +- path: path to the dynamic instrumentation library

Missing out on args documentation.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 621 bytes --]

  reply	other threads:[~2013-03-26 14:53 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-26 14:00 [Qemu-devel] [RFC][PATCH 00/22] instrument: Let the user wrap/override specific event tracing routines Lluís Vilanova
2013-03-26 14:00 ` [Qemu-devel] [PATCH 01/22] instrument: Add documentation Lluís Vilanova
2013-03-26 14:00 ` [Qemu-devel] [PATCH 02/22] trace: [simple] Do not include "trace/simple.h" in generated tracer headers Lluís Vilanova
2013-03-26 14:00 ` [Qemu-devel] [PATCH 03/22] trace: Let the user specify her own trace-events file Lluís Vilanova
2013-03-26 14:00 ` [Qemu-devel] [PATCH 04/22] tracetool: Use method 'Event.api' to get the name of public routines Lluís Vilanova
2013-03-26 14:00 ` [Qemu-devel] [PATCH 05/22] trace: Minimize inclusions of "qemu-common.h" to avoid inclusion loops Lluís Vilanova
2013-03-26 14:00 ` [Qemu-devel] [PATCH 06/22] instrument: [none] Add null instrumentation Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 07/22] linux-user: Use absolute include path Lluís Vilanova
2013-03-26 14:06   ` Peter Maydell
2013-03-26 15:15     ` Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 08/22] instrument: [static] Call statically linked user-provided routines Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 09/22] instrument: [dynamic] Call dynamically " Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 10/22] instrument: Add internal control interface Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 11/22] instrument: [hmp] Add " Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 12/22] qapi: Add a primitive to include other files from a QAPI schema file Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 13/22] [trivial] Set the input root directory when parsing QAPI files Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 14/22] instrument: [qmp, qapi] Add control interface Lluís Vilanova
2013-03-26 14:52   ` Eric Blake [this message]
2013-03-26 15:39     ` Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 15/22] Let makefiles add entries to the set of target architecture objects Lluís Vilanova
2013-03-26 14:01 ` [Qemu-devel] [PATCH 16/22] instrument: Add commandline options to start with an instrumentation library Lluís Vilanova
2013-03-26 14:59   ` Eric Blake
2013-03-26 14:01 ` [Qemu-devel] [PATCH 17/22] instrument: Add client-side API to enumerate events Lluís Vilanova
2013-03-26 14:02 ` [Qemu-devel] [PATCH 18/22] instrument: Add client-side API to control tracing state of events Lluís Vilanova
2013-03-26 14:02 ` [Qemu-devel] [PATCH 19/22] instrument: Add client-side API to control event instrumentation Lluís Vilanova
2013-03-26 14:02 ` [Qemu-devel] [PATCH 20/22] build: Fix installation of target-dependant files Lluís Vilanova
2013-03-26 14:02 ` [Qemu-devel] [PATCH 21/22] instrument: Install headers for dynamic instrumentation clients Lluís Vilanova
2013-03-26 14:02 ` [Qemu-devel] [PATCH 22/22] trace: Do not use the word 'new' in event arguments Lluís Vilanova
2013-04-11  9:07 ` [Qemu-devel] [RFC][PATCH 00/22] instrument: Let the user wrap/override specific event tracing routines Stefan Hajnoczi
2013-04-11 12:29   ` Lluís Vilanova
2013-04-12  8:18     ` Stefan Hajnoczi

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=5151B647.6070900@redhat.com \
    --to=eblake@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=vilanova@ac.upc.edu \
    /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.