qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: Peter Xu <peterx@redhat.com>,
	qemu-devel@nongnu.org, Juan Quintela <quintela@redhat.com>,
	Fabiano Rosas <farosas@suse.de>, Thomas Huth <thuth@redhat.com>,
	Markus Armbruster <armbru@redhat.com>
Subject: Re: [PATCH v3 4/4] migration/qapi: Drop @MigrationParameter enum
Date: Wed, 6 Sep 2023 10:00:53 +0100	[thread overview]
Message-ID: <ZPg/xagpvBW62h4w@redhat.com> (raw)
In-Reply-To: <c5937e59-e267-519a-cf57-bf051b07304f@linaro.org>

On Wed, Sep 06, 2023 at 06:42:16AM +0200, Philippe Mathieu-Daudé wrote:
> On 5/9/23 18:23, Peter Xu wrote:
> > Drop the enum in qapi because it is never used in QMP APIs.  Instead making
> > it an internal definition for QEMU so that we can decouple it from QAPI,
> > and also we can deduplicate the QAPI documentations.
> > 
> > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> > Signed-off-by: Peter Xu <peterx@redhat.com>
> > ---
> >   qapi/migration.json            | 179 ---------------------------------
> >   migration/options.h            |  47 +++++++++
> >   migration/migration-hmp-cmds.c |   3 +-
> >   migration/options.c            |  51 ++++++++++
> >   4 files changed, 100 insertions(+), 180 deletions(-)
> 
> 
> > diff --git a/migration/options.h b/migration/options.h
> > index 124a5d450f..4591545c62 100644
> > --- a/migration/options.h
> > +++ b/migration/options.h
> > @@ -66,6 +66,53 @@ bool migrate_cap_set(int cap, bool value, Error **errp);
> >   /* parameters */
> > +typedef enum {
> > +    MIGRATION_PARAMETER_ANNOUNCE_INITIAL,
> > +    MIGRATION_PARAMETER_ANNOUNCE_MAX,
> > +    MIGRATION_PARAMETER_ANNOUNCE_ROUNDS,
> > +    MIGRATION_PARAMETER_ANNOUNCE_STEP,
> > +    MIGRATION_PARAMETER_COMPRESS_LEVEL,
> > +    MIGRATION_PARAMETER_COMPRESS_THREADS,
> > +    MIGRATION_PARAMETER_DECOMPRESS_THREADS,
> > +    MIGRATION_PARAMETER_COMPRESS_WAIT_THREAD,
> > +    MIGRATION_PARAMETER_THROTTLE_TRIGGER_THRESHOLD,
> > +    MIGRATION_PARAMETER_CPU_THROTTLE_INITIAL,
> > +    MIGRATION_PARAMETER_CPU_THROTTLE_INCREMENT,
> > +    MIGRATION_PARAMETER_CPU_THROTTLE_TAILSLOW,
> > +    MIGRATION_PARAMETER_TLS_CREDS,
> > +    MIGRATION_PARAMETER_TLS_HOSTNAME,
> > +    MIGRATION_PARAMETER_TLS_AUTHZ,
> > +    MIGRATION_PARAMETER_MAX_BANDWIDTH,
> > +    MIGRATION_PARAMETER_DOWNTIME_LIMIT,
> > +    MIGRATION_PARAMETER_X_CHECKPOINT_DELAY,
> > +    MIGRATION_PARAMETER_BLOCK_INCREMENTAL,
> > +    MIGRATION_PARAMETER_MULTIFD_CHANNELS,
> > +    MIGRATION_PARAMETER_XBZRLE_CACHE_SIZE,
> > +    MIGRATION_PARAMETER_MAX_POSTCOPY_BANDWIDTH,
> > +    MIGRATION_PARAMETER_MAX_CPU_THROTTLE,
> > +    MIGRATION_PARAMETER_MULTIFD_COMPRESSION,
> > +    MIGRATION_PARAMETER_MULTIFD_ZLIB_LEVEL,
> > +    MIGRATION_PARAMETER_MULTIFD_ZSTD_LEVEL,
> > +    MIGRATION_PARAMETER_BLOCK_BITMAP_MAPPING,
> > +    MIGRATION_PARAMETER_X_VCPU_DIRTY_LIMIT_PERIOD,
> > +    MIGRATION_PARAMETER_VCPU_DIRTY_LIMIT,
> > +    MIGRATION_PARAMETER__MAX,
> 
> MIGRATION_PARAMETER__MAX is not part of the enum, so:
> 
>    #define MIGRATION_PARAMETER__MAX \
>        (MIGRATION_PARAMETER_VCPU_DIRTY_LIMIT + 1)

IMHO the way it currently is written is better, because the
__MAX value is guaranteed to always have the right max value
without needing to be manually changed when new params are
added. Note this matches the code style used by the QAPI
enum generator too.

> 
> > +} MigrationParameter;
> > +
> > +extern const char *MigrationParameter_string[MIGRATION_PARAMETER__MAX];
> > +#define  MigrationParameter_str(p)  MigrationParameter_string[p]
> 
> Hmm this is only used once by HMP. Following our style I suggest here:
> 
>  const char *const MigrationParameter_string(enum MigrationParameter param);
> 
> And in options.c:
> 
>  static const char *const MigrationParameter_str[MIGRATION_PARAMETER__MAX] =
> {
>     ...
>  };
> 
>  const char *const MigrationParameter_string(enum MigrationParameter param)
>  {
>      return MigrationParameter_str[param];
>  }
> 
> > +
> > +/**
> > + * @MigrationParameter_from_str(): Parse string into a MigrationParameter
> > + *
> > + * @param: input string
> > + * @errp: error message if failed to parse the string
> > + *
> > + * Returns MigrationParameter enum (>=0) if succeed, or negative otherwise
> > + * which will always setup @errp.
> > + */
> > +int MigrationParameter_from_str(const char *param, Error **errp);
> > +
> >   const BitmapMigrationNodeAliasList *migrate_block_bitmap_mapping(void);
> >   bool migrate_has_block_bitmap_mapping(void);
> 
> With the changes:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



  reply	other threads:[~2023-09-06  9:01 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-05 16:23 [PATCH v3 0/4] qapi/migration: Dedup migration parameter objects and fix tls-authz crash Peter Xu
2023-09-05 16:23 ` [PATCH v3 1/4] migration/qmp: Fix crash on setting tls-authz with null Peter Xu
2023-09-28  4:47   ` Michael Tokarev
2023-09-28  5:36     ` Markus Armbruster
2023-09-28  6:56       ` Michael Tokarev
2023-10-04 13:58   ` Juan Quintela
2023-10-16  6:05   ` Markus Armbruster
2023-09-05 16:23 ` [PATCH v3 2/4] tests/migration-test: Add a test for null parameter setups Peter Xu
2023-10-04 13:58   ` Juan Quintela
2023-09-05 16:23 ` [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters Peter Xu
2023-09-26 20:40   ` Markus Armbruster
2023-10-02 19:52     ` Peter Xu
2023-10-09 12:25       ` Markus Armbruster
2023-10-10 15:05         ` Peter Xu
2023-10-10 19:18           ` Markus Armbruster
2023-10-10 20:09             ` Peter Xu
2023-10-11  4:28               ` Markus Armbruster
2023-10-11 14:21                 ` Markus Armbruster
2023-10-12 19:28                   ` Peter Xu
2023-10-13  5:36                     ` Markus Armbruster
2023-10-31 11:08                       ` Juan Quintela
2023-11-02 14:25                         ` Configuring migration (was: [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters) Markus Armbruster
2023-11-02 18:05                           ` Peter Xu
2023-11-14  7:27                             ` Configuring migration Markus Armbruster
2023-11-14 10:20                               ` Juan Quintela
2023-11-14  9:13                           ` Configuring migration (was: [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters) Daniel P. Berrangé
2023-11-14  9:53                             ` Configuring migration Markus Armbruster
2023-11-14  9:55                               ` Daniel P. Berrangé
2023-11-14 10:28                             ` Juan Quintela
2023-11-14 10:34                               ` Daniel P. Berrangé
2023-11-14 10:42                                 ` Juan Quintela
2023-11-14 10:45                                   ` Daniel P. Berrangé
2023-10-12 15:58                 ` [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters Peter Xu
2023-10-13  5:41                   ` Markus Armbruster
2023-09-05 16:23 ` [PATCH v3 4/4] migration/qapi: Drop @MigrationParameter enum Peter Xu
2023-09-06  4:42   ` Philippe Mathieu-Daudé
2023-09-06  9:00     ` Daniel P. Berrangé [this message]
2023-09-06 10:14       ` Philippe Mathieu-Daudé
2023-09-06 10:46         ` Daniel P. Berrangé
2023-09-26 19:05           ` Peter Xu
2023-09-26 20:43   ` Markus Armbruster
2023-10-02 20:42     ` Peter Xu
2023-10-16  6:29       ` Markus Armbruster
2023-10-16 16:16         ` Peter Xu
2023-10-16 17:36           ` Markus Armbruster
2023-09-25 12:59 ` [PATCH v3 0/4] qapi/migration: Dedup migration parameter objects and fix tls-authz crash Markus Armbruster
2023-09-26 17:06   ` Peter Xu
2023-09-26 20:03     ` Markus Armbruster
2023-10-16  7:08 ` Markus Armbruster
2023-10-16 16:29   ` Peter Xu
2023-10-17  6:32     ` Markus Armbruster
2023-10-17 15:28       ` Peter Xu
2023-10-18  5:38         ` Markus Armbruster
2023-10-25 13:17       ` QAPI doc generator improvements (was: [PATCH v3 0/4] qapi/migration: Dedup migration parameter objects and fix tls-authz crash) 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=ZPg/xagpvBW62h4w@redhat.com \
    --to=berrange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=farosas@suse.de \
    --cc=peterx@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=thuth@redhat.com \
    /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).