On Thu, Sep 17, 2026 at 01:53:22PM +0200, Markus Armbruster wrote:
> Fabiano Rosas <[email protected]> writes:
> 
> > The hmp_info_migrate_parameters function currently open-codes the
> > mon_printf calls for each migration parameter. As with the set command
> > in the last patch, this should not be necessary as the QAPI
> > infrastructure already has generated code that takes type and struct
> > member names into account, including converting _ from C into the '-'
> > character as part of parameter names strings.
> >
> > The current code is also quite painful to rebase if a series has been
> > carried for a long time while parameters have been added in master.
> >
> > Replace all of this with a conversion from MigrationParameters to
> > QDict using an output visitor and a loop over the QDict that prints
> > per-QAPI-type formatted strings.
> >
> > Modelled after block/qapi.c:dump_qobject, but with some changes to
> > keep the migration command output formatting.
> >
> > Signed-off-by: Fabiano Rosas <[email protected]>
> 
> Old output of info migrate_parameters for me:
> 
>     announce-initial: 50
>     announce-max: 550
>     announce-rounds: 5
>     announce-step: 100
>     throttle-trigger-threshold: 50
>     cpu-throttle-initial: 20
>     cpu-throttle-increment: 10
>     cpu-throttle-tailslow: off
>     max-cpu-throttle: 99
>     tls-creds: 
>     tls-hostname: 
>     tls-authz: 
>     max-bandwidth: 134217728
>     avail-switchover-bandwidth: 0
>     max-postcopy-bandwidth: 0
>     downtime-limit: 300
>     x-checkpoint-delay: 20000
>     multifd-channels: 2
>     multifd-compression: none
>     zero-page-detection: multifd
>     xbzrle-cache-size: 67108864
>     x-vcpu-dirty-limit-period: 1000
>     vcpu-dirty-limit: 1
>     mode: normal
>     direct-io: off
>     x-rdma-chunk-size: 1048576
>     cpr-exec-command:
> 
> New output:
> 
>     cpu-throttle-tailslow: off
>     xbzrle-cache-size: 67108864
>     cpu-throttle-initial: 20
>     announce-max: 550
>     direct-io: off
>     avail-switchover-bandwidth: 0
>     local: off
>     zero-page-detection: multifd
>     multifd-qatzip-level: 1
>     x-rdma-chunk-size: 1048576
>     multifd-channels: 2
>     mode: normal
>     multifd-zstd-level: 1
>     announce-initial: 50
>     downtime-limit: 300
>     tls-authz: 
>     cpr-exec-command:
> 
>     vcpu-dirty-limit: 1
>     multifd-compression: none
>     announce-rounds: 5
>     announce-step: 100
>     tls-creds: 
>     x-vcpu-dirty-limit-period: 1000
>     multifd-zlib-level: 1
>     max-cpu-throttle: 99
>     max-postcopy-bandwidth: 0
>     tls-hostname: 
>     throttle-trigger-threshold: 50
>     max-bandwidth: 134217728
>     x-checkpoint-delay: 20000
>     cpu-throttle-increment: 10
> 
> New output has an unwanted blank line after "cpr-exec-command:".
> 
> New output adds @local, @multifd-qatzip-level, @multifd-zlib-level,
> @multifd-zstd-level.  Commit message should point that out.
> 
> Order of parameters changes, and not for the better.  Hmm.

Good point.. it might start to be awkward to users looking for tls-*,
multifd-*, announce-* or cpu-throttle*, etc. after this change, expecting
them grouped.

Maybe we can sort them by name with inserting top level to a QList first
from the QDict.

We won't be able to keep all relevant fields together, for example, we used
to have max-cpu-throttle together with cpu-throttle-*, now also separate
even with alphabetical order, but it's a special case of bad name since the
start.. where it could have been "cpu-throttle-max".  Meanwhile, as another
good side effect, we can finally have max-* fields together too.

-- 
Peter Xu


Reply via email to