All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mahmoud Mandour <ma.mandourr@gmail.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: "Emilio G. Cota" <cota@braap.org>,
	"open list:All patches CC here" <qemu-devel@nongnu.org>
Subject: Re: [PATCH 00/13] new plugin argument passing scheme
Date: Sat, 17 Jul 2021 15:48:50 +0200	[thread overview]
Message-ID: <CAD-LL6hBEFoBNAbqRCqtXkjVrnW85VtryQkib_-jOix5z-6A2Q@mail.gmail.com> (raw)
In-Reply-To: <87o8b12hkc.fsf@linaro.org>

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

On Sat, Jul 17, 2021, 15:31 Alex Bennée <alex.bennee@linaro.org> wrote:

>
> Mahmoud Mandour <ma.mandourr@gmail.com> writes:
>
> > Hello,
> >
> > This series removes passing arguments to plugins through "arg=" since
> > it's redundant and reduces readability especially when the argument
> > itself is composed of a name and a value.
>
> When you re-roll a series it's useful to add a version tag. You can use
> --subject-prefix in your git format-patch command to do this.
>
> I'll have a look at this on Monday.
>

Thank you so much for the notice. I usually do it but I missed it this
time, hopefully won't happen again.


> >
> > Also, passing arguments through "arg=" still works but is marked as
> > deprecated and will produce a deprecation warning.
> >
> > Right now, the code for parsing the argument before passing it to the
> > plugin is unfortunately not so clean but that's mainly because "arg=" is
> > still supported.
> >
> > At first, considering boolean parameters, those were not special to
> > plugins and QEMU did not complain about passing them in the form
> > "arg=bool_arg" even though that's considered a short-form boolean, which
> > is deprecated. As "arg" is removed, a deprecation warning is issued.
> >
> > This is mitigated by making plugins aware of boolean arguments and
> > parses them through a newly exposed API, namely the `qapi_bool_parse`
> > function through a plugin API function. Now plugins expect boolean
> > parameters to be passed in the form that other parts of QEMU expect,
> > i.e. "bool_arg=[on|true|yes|off|false|no]".
> >
> > Since we're still supporting "arg=arg_name", there are some assumptions
> > that I made that I think are suitable:
> >
> >     1. "arg=arg_name" will be passed to the plugin as "arg_name=on".
> >     2. "arg=on" and "arg" will not be assumed to be the old way of
> >         passing args. Instead, it will assume that the argument name is
> >         "arg" and it's a boolean parameter. (will be passed to plugin
> >         as "arg=on")
> >
> > The docs are updated accordingly and a deprecation notice is put in the
> > deprecated.rst file.
> >
> > v1 -> v2:
> >     1. Added patches that handle test plugins as well
> >     2. Handled unsupported arguements in howvec
> >
> > Based-on: <20210714172151.8494-1-ma.mandourr@gmail.com>
> >
> > However, the dependency is so light and it should only be in the patch
> >
> >     docs/tcg-plugins: new passing parameters scheme for cache docs
> >
> > where it depends on
> >
> >     docs/devel/tcg-plugins: added cores arg to cache plugin
> >
> > in the aforementioned series (conflict lies in the argument "cores=N"
> only.)
> >
> > Mahmoud Mandour (13):
> >   plugins: allow plugin arguments to be passed directly
> >   plugins/api: added a boolean parsing plugin api
> >   plugins/hotpages: introduce sortby arg and parsed bool args correctly
> >   plugins/hotblocks: Added correct boolean argument parsing
> >   plugins/lockstep: make socket path not positional & parse bool arg
> >   plugins/hwprofile: adapt to the new plugin arguments scheme
> >   plugins/howvec: Adapting to the new argument passing scheme.
> >   docs/tcg-plugins: new passing parameters scheme for cache docs
> >   tests/plugins/bb: adapt to the new arg passing scheme
> >   tests/plugins/insn: made arg inline not positional and parse it as
> >     bool
> >   tests/plugins/mem: introduce "track" arg and make args not positional
> >   tests/plugins/syscalls: adhere to new arg-passing scheme
> >   docs/deprecated: deprecate passing plugin args through `arg=`
> >
> >  contrib/plugins/hotblocks.c | 14 +++++++++--
> >  contrib/plugins/hotpages.c  | 30 +++++++++++++++--------
> >  contrib/plugins/howvec.c    | 27 ++++++++++++++-------
> >  contrib/plugins/hwprofile.c | 39 ++++++++++++++++++++----------
> >  contrib/plugins/lockstep.c  | 31 +++++++++++++++++-------
> >  docs/devel/tcg-plugins.rst  | 38 +++++++++++++++---------------
> >  docs/system/deprecated.rst  |  6 +++++
> >  include/qemu/qemu-plugin.h  | 13 ++++++++++
> >  linux-user/main.c           |  2 +-
> >  plugins/api.c               |  5 ++++
> >  plugins/loader.c            | 24 +++++++++++++++----
> >  qemu-options.hx             |  9 ++++---
> >  tests/plugin/bb.c           | 15 ++++++++----
> >  tests/plugin/insn.c         | 14 +++++++++--
> >  tests/plugin/mem.c          | 47 +++++++++++++++++++++++--------------
> >  tests/plugin/syscall.c      | 23 ++++++++++++------
> >  16 files changed, 236 insertions(+), 101 deletions(-)
>
>
> --
> Alex Bennée

[-- Attachment #2: Type: text/html, Size: 6152 bytes --]

      reply	other threads:[~2021-07-17 13:50 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-17 10:09 [PATCH 00/13] new plugin argument passing scheme Mahmoud Mandour
2021-07-17 10:09 ` [PATCH 01/13] plugins: allow plugin arguments to be passed directly Mahmoud Mandour
2021-07-19 13:31   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 02/13] plugins/api: added a boolean parsing plugin api Mahmoud Mandour
2021-07-19 14:11   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 03/13] plugins/hotpages: introduce sortby arg and parsed bool args correctly Mahmoud Mandour
2021-07-19 14:23   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 04/13] plugins/hotblocks: Added correct boolean argument parsing Mahmoud Mandour
2021-07-19 14:24   ` Alex Bennée
2021-07-19 14:26   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 05/13] plugins/lockstep: make socket path not positional & parse bool arg Mahmoud Mandour
2021-07-19 14:25   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 06/13] plugins/hwprofile: adapt to the new plugin arguments scheme Mahmoud Mandour
2021-07-17 10:09 ` [PATCH 07/13] plugins/howvec: Adapting to the new argument passing scheme Mahmoud Mandour
2021-07-19 14:57   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 08/13] docs/tcg-plugins: new passing parameters scheme for cache docs Mahmoud Mandour
2021-07-19 14:58   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 09/13] tests/plugins/bb: adapt to the new arg passing scheme Mahmoud Mandour
2021-07-19 14:58   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 10/13] tests/plugins/insn: made arg inline not positional and parse it as bool Mahmoud Mandour
2021-07-19 14:59   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 11/13] tests/plugins/mem: introduce "track" arg and make args not positional Mahmoud Mandour
2021-07-19 15:31   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 12/13] tests/plugins/syscalls: adhere to new arg-passing scheme Mahmoud Mandour
2021-07-19 15:32   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 13/13] docs/deprecated: deprecate passing plugin args through `arg=` Mahmoud Mandour
2021-07-19 12:13   ` Peter Krempa
2021-07-17 13:29 ` [PATCH 00/13] new plugin argument passing scheme Alex Bennée
2021-07-17 13:48   ` Mahmoud Mandour [this message]

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=CAD-LL6hBEFoBNAbqRCqtXkjVrnW85VtryQkib_-jOix5z-6A2Q@mail.gmail.com \
    --to=ma.mandourr@gmail.com \
    --cc=alex.bennee@linaro.org \
    --cc=cota@braap.org \
    --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.