qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel <qemu-devel@nongnu.org>
Subject: Sample 'qapi-schema-diff' output for v9.0.0 vs origin/master
Date: Wed, 12 Jun 2024 14:40:40 -0400	[thread overview]
Message-ID: <CAFn=p-a4MOZGDd7nj_gEf0fT7nvwa40pLJ1GiGOTj3uNhSq1tg@mail.gmail.com> (raw)

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

Hiya, here's some draft output of a script I'm working on to summarize QMP
wire format differences between QEMU versions.

This script works in terms of the QMP *wire format*, not the QAPI
*specification*. As a consequence, *almost* all type names are stripped
from this output and all nested structures are fully inlined - so changes
to shared data structures, enums, etc will manifest as many independent
changes. Similarly, changes to type names and type factorings that do not
change the wire format will not appear in this report at all.

This is still a WIP: if conditionals and features may not be fully
represented in this summary report.

Here's today's diff output, see if you think this format is "intuitive" or
makes sense to some extent; or, if you're feeling bored, if you believe
it's fully accurate:

jsnow@scv ~/s/qemu (master)> qapi-schema-diff qapi-compiled-v9.0.0.json
qapi-compiled-v9.0.0-1388-g80e8f060216.json
###################################
v9.0.0 ==> v9.0.0-1388-g80e8f060216
###################################

********
commands
********

Removed
=======
x-query-rdma

Modified
========
blockdev-backup (arguments)
    ++ arguments.discard-source: Optional<boolean>
drive-backup (arguments)
    ++ arguments.discard-source: Optional<boolean>
migrate (arguments)
    -- arguments.blk: Optional<boolean>
    -- arguments.inc: Optional<boolean>
migrate-incoming (arguments)
    ++ arguments.exit-on-error: Optional<boolean>
migrate-set-capabilities (arguments)
    ·· arguments.capabilities[].capability: enum
    --     'block'
    --     'compress'
migrate-set-parameters (arguments)
    -- arguments.block-incremental: Optional<boolean>
    -- arguments.compress-level: Optional<integer>
    -- arguments.compress-threads: Optional<integer>
    -- arguments.compress-wait-thread: Optional<boolean>
    -- arguments.decompress-threads: Optional<integer>
object-add (arguments)
    ·· arguments.qom-type: enum
    ++     'sev-snp-guest'
    ++ arguments<qom-type=sev-guest>.legacy-vm-type: Optional<boolean>
    ++ arguments<qom-type=sev-snp-guest>.author-key-enabled:
Optional<boolean>
    ++ arguments<qom-type=sev-snp-guest>.cbitpos: Optional<integer>
    ++ arguments<qom-type=sev-snp-guest>.guest-visible-workarounds:
Optional<string>
    ++ arguments<qom-type=sev-snp-guest>.host-data: Optional<string>
    ++ arguments<qom-type=sev-snp-guest>.id-auth: Optional<string>
    ++ arguments<qom-type=sev-snp-guest>.id-block: Optional<string>
    ++ arguments<qom-type=sev-snp-guest>.kernel-hashes: Optional<boolean>
    ++ arguments<qom-type=sev-snp-guest>.policy: Optional<integer>
    ++ arguments<qom-type=sev-snp-guest>.reduced-phys-bits: integer
    ++ arguments<qom-type=sev-snp-guest>.sev-device: Optional<string>
    ++ arguments<qom-type=sev-snp-guest>.vcek-disabled: Optional<boolean>
query-cpu-model-baseline (returns, arguments)
    ++ arguments.modela.deprecated-props: Optional<array>
    ++ arguments.modela.deprecated-props[]: string
    ++ arguments.modelb.deprecated-props: Optional<array>
    ++ arguments.modelb.deprecated-props[]: string
    ++ returns.model.deprecated-props: Optional<array>
    ++ returns.model.deprecated-props[]: string
query-cpu-model-comparison (arguments)
    ++ arguments.modela.deprecated-props: Optional<array>
    ++ arguments.modela.deprecated-props[]: string
    ++ arguments.modelb.deprecated-props: Optional<array>
    ++ arguments.modelb.deprecated-props[]: string
query-cpu-model-expansion (returns, arguments)
    ++ arguments.model.deprecated-props: Optional<array>
    ++ arguments.model.deprecated-props[]: string
    ++ returns.model.deprecated-props: Optional<array>
    ++ returns.model.deprecated-props[]: string
query-cpus-fast (returns)
    ++ returns[].props.module-id: Optional<integer>
    ·· returns[].target: enum
    --     'nios2'
query-hotpluggable-cpus (returns)
    ++ returns[].props.module-id: Optional<integer>
query-machines (returns, arguments)
    ++ arguments.compat-props: Optional<boolean>
    ++ returns[].compat-props: Optional<array>
    ++ returns[].compat-props[]: object
    ++ returns[].compat-props[].property: string
    ++ returns[].compat-props[].qom-type: string
    ++ returns[].compat-props[].value: string
query-migrate (returns)
    -- returns.compression: Optional<object>
    -- returns.compression.busy: integer
    -- returns.compression.busy-rate: number
    -- returns.compression.compressed-size: integer
    -- returns.compression.compression-rate: number
    -- returns.compression.pages: integer
    -- returns.disk: Optional<object>
    -- returns.disk.dirty-pages-rate: integer
    -- returns.disk.dirty-sync-count: integer
    -- returns.disk.dirty-sync-missed-zero-copy: integer
    -- returns.disk.downtime-bytes: integer
    -- returns.disk.duplicate: integer
    -- returns.disk.mbps: number
    -- returns.disk.multifd-bytes: integer
    -- returns.disk.normal: integer
    -- returns.disk.normal-bytes: integer
    -- returns.disk.page-size: integer
    -- returns.disk.pages-per-second: integer
    -- returns.disk.postcopy-bytes: integer
    -- returns.disk.postcopy-requests: integer
    -- returns.disk.precopy-bytes: integer
    -- returns.disk.remaining: integer
    -- returns.disk.skipped: integer
    -- returns.disk.total: integer
    -- returns.disk.transferred: integer
    -- returns.ram.skipped: integer
query-migrate-capabilities (returns)
    ·· returns[].capability: enum
    --     'block'
    --     'compress'
query-migrate-parameters (returns)
    -- returns.block-incremental: Optional<boolean>
    -- returns.compress-level: Optional<integer>
    -- returns.compress-threads: Optional<integer>
    -- returns.compress-wait-thread: Optional<boolean>
    -- returns.decompress-threads: Optional<integer>
query-sev (returns)
    -- returns.handle: integer
    -- returns.policy: integer
    ++ returns.sev-type: enum
    ++ returns<sev-type=sev-snp>.snp-policy: integer
    ++ returns<sev-type=sev>.handle: integer
    ++ returns<sev-type=sev>.policy: integer
query-target (returns)
    ·· returns.arch: enum
    --     'nios2'
set-numa-node (arguments)
    ++ arguments<type=cpu>.module-id: Optional<integer>
trace-event-get-state (returns, arguments)
    -- arguments.vcpu: Optional<integer>
    -- returns[].vcpu: boolean
trace-event-set-state (arguments)
    -- arguments.vcpu: Optional<integer>
transaction (arguments)
    ++ arguments.actions[]<type=blockdev-backup>.data.discard-source:
Optional<boolean>
    ++ arguments.actions[]<type=drive-backup>.data.discard-source:
Optional<boolean>

******
events
******

Added
=====
VFIO_MIGRATION

Removed
=======
MEM_UNPLUG_ERROR
RDMA_GID_STATUS_CHANGED

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

             reply	other threads:[~2024-06-12 18:41 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-12 18:40 John Snow [this message]
2024-06-13  8:49 ` Sample 'qapi-schema-diff' output for v9.0.0 vs origin/master Philippe Mathieu-Daudé
2024-06-13 14:07   ` John Snow
2024-06-13 14:54 ` Daniel P. Berrangé

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='CAFn=p-a4MOZGDd7nj_gEf0fT7nvwa40pLJ1GiGOTj3uNhSq1tg@mail.gmail.com' \
    --to=jsnow@redhat.com \
    --cc=armbru@redhat.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 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).