From: Markus Armbruster <armbru@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org, "Michael Roth" <michael.roth@amd.com>,
"John Snow" <jsnow@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Kostiantyn Kostiuk" <kkostiuk@redhat.com>,
"Eric Blake" <eblake@redhat.com>,
"David Hildenbrand" <david@kernel.org>,
"Igor Mammedov" <imammedo@redhat.com>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Jason Wang" <jasowangio@gmail.com>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
kvm@vger.kernel.org, "Alberto Garcia" <berto@igalia.com>,
"Kevin Wolf" <kwolf@redhat.com>,
"Hanna Reitz" <hreitz@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@oss.qualcomm.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"Junjie Cao" <junjie.cao@intel.com>,
"Anisa Su" <anisa.su@samsung.com>,
"Elena Ufimtseva" <elena.ufimtseva@oracle.com>,
"Jagannathan Raman" <jag.raman@oracle.com>,
"John Levon" <john.levon@nutanix.com>,
"Thanos Makatos" <thanos.makatos@nutanix.com>,
"Cédric Le Goater" <clg@redhat.com>,
"Cornelia Huck" <cohuck@redhat.com>,
"Eric Farman" <farman@linux.ibm.com>,
"Matthew Rosato" <mjrosato@linux.ibm.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
qemu-block@nongnu.org, linux-cxl@vger.kernel.org,
qemu-s390x@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
"Sergio Lopez" <slp@redhat.com>,
qemu-arm@nongnu.org, "Palmer Dabbelt" <palmer@dabbelt.com>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Weiwei Li" <liwei1518@gmail.com>,
"Daniel Henrique Barboza" <daniel.barboza@oss.qualcomm.com>,
"Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
"Chao Liu" <chao.liu@processmission.com>,
qemu-riscv@nongnu.org, "Song Gao" <17746591750@163.com>,
"Bibo Mao" <maobibo@loongson.cn>,
"Xianglai Li" <lixianglai@loongson.cn>,
"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
"Pedro Barbuda" <pbarbuda@microsoft.com>,
"Mohamed Mediouni" <mohamed@unpredictable.fr>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
"Amit Machhiwal" <amachhiw@linux.ibm.com>,
qemu-ppc@nongnu.org, "Zhang Chen" <zhangckid@gmail.com>,
"Li Zhijian" <lizhijian@fujitsu.com>,
"Alistair Francis" <alistair@alistair23.me>,
"Alexander Graf" <graf@amazon.com>,
"Gonglei (Arei)" <arei.gonglei@huawei.com>,
"zhenwei pi" <zhenwei.pi@linux.dev>,
"Ani Sinha" <anisinha@redhat.com>, "Luc Michel" <luc@lmichel.fr>,
"Cédric Le Goater" <clg@kaod.org>,
"Jamin Lin" <jamin_lin@aspeedtech.com>,
"Kane Chen" <kane_chen@aspeedtech.com>,
"Samuel Tardieu" <sam@rfc1149.net>,
"Denis V. Lunev" <den@openvz.org>,
"FangSheng Huang" <FangSheng.Huang@amd.com>,
"Tyrone Ting" <kfting@nuvoton.com>,
"Hao Wu" <wuhaotsh@google.com>, "Keith Busch" <kbusch@kernel.org>,
"Klaus Jensen" <its@irrelevant.dk>,
"Jesper Devantier" <foss@defmacro.it>,
"Aditya Gupta" <adityag@linux.ibm.com>,
"Glenn Miles" <milesg@linux.ibm.com>,
"Conor Dooley" <conor@kernel.org>,
"Sebastian Huber" <sebastian.huber@embedded-brains.de>,
"Halil Pasic" <pasic@linux.ibm.com>,
"Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Jason Herne" <jjherne@linux.ibm.com>,
"Titus Rwantare" <titusr@google.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Anthony PERARD" <anthony@xenproject.org>,
"Peter Xu" <peterx@redhat.com>,
"Chinmay Rath" <rathc@linux.ibm.com>,
"Hendrik Brueckner" <brueckner@linux.ibm.com>,
xen-devel@lists.xenproject.org,
"Roman Bolshakov" <rbolshakov@ddn.com>,
"Phil Dennis-Jordan" <phil@philjordan.eu>,
"Fam Zheng" <fam@euphon.net>, "Farhan Ali" <alifm@linux.ibm.com>,
"Alex Williamson" <alex@shazbot.org>,
"Tao Tang" <tangtao1634@phytium.com.cn>,
"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
"Artyom Tarasenko" <atar4qemu@gmail.com>,
"Yoshinori Sato" <yoshinori.sato@nifty.com>,
"Jiri Pirko" <jiri@resnulli.us>,
"Eric Auger" <eric.auger@redhat.com>,
"Laurent Vivier" <lvivier@redhat.com>
Subject: Re: [PATCH v7 42/65] virtio-balloon: convert guest-stats property to QAPI type
Date: Tue, 20 Oct 2026 14:59:54 +0200 [thread overview]
Message-ID: <87h5igplx1.fsf@pond.sub.org> (raw)
In-Reply-To: <20261020-qom-qapi-v7-42-431a86b02b58@redhat.com> ("Marc-André Lureau"'s message of "Tue, 20 Oct 2026 14:45:59 +0400")
Marc-André Lureau <marcandre.lureau@redhat.com> writes:
> Define VirtioBalloonStats and VirtioBalloonGuestStats QAPI struct types
> in the schema, replacing the hand-rolled visitor in balloon_stats_get_all()
> with a generated visit_type_VirtioBalloonGuestStats() call.
>
> The wire format is preserved: the JSON output from qom-get is identical
> to the previous hand-rolled visitor output.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> docs/interop/virtio-balloon-stats.rst | 22 +--------
> hw/virtio/virtio-balloon.c | 84 ++++++++++++--------------------
> qapi/machine.json | 92 +++++++++++++++++++++++++++++++++++
> 3 files changed, 123 insertions(+), 75 deletions(-)
>
> diff --git a/docs/interop/virtio-balloon-stats.rst b/docs/interop/virtio-balloon-stats.rst
> index b9a6a6edb229..88d3271bbb02 100644
> --- a/docs/interop/virtio-balloon-stats.rst
> +++ b/docs/interop/virtio-balloon-stats.rst
> @@ -22,27 +22,7 @@ polling the guest's balloon driver for new stats in the specified time
> interval.
>
> To retrieve those stats, clients have to query the guest-stats property,
> -which will return a dictionary containing:
> -
> - * A key named 'stats', containing all available stats. If the guest
> - doesn't support a particular stat, or if it couldn't be retrieved,
> - its value will be -1. Currently, the following stats are supported:
> -
> - - stat-swap-in
> - - stat-swap-out
> - - stat-major-faults
> - - stat-minor-faults
> - - stat-free-memory
> - - stat-total-memory
> - - stat-available-memory
> - - stat-disk-caches
> - - stat-htlb-pgalloc
> - - stat-htlb-pgfail
Missing here:
- stat-oom-kills
- stat-alloc-stalls
- stat-async-scans
- stat-direct-scans
- stat-async-reclaims
- stat-direct-reclaims
Review note, not a request for anything.
> -
> - * A key named last-update, which contains the last stats update
> - timestamp in seconds. Since this timestamp is generated by the host,
> - a buggy guest can't influence its value. The value is 0 if the guest
> - has not updated the stats (yet).
> +which will return a VirtioBalloonGuestStats (see QAPI documentation).
>
> It's also important to note the following:
>
> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
> index 7ffbe48e5134..bfc75f5dfc72 100644
> --- a/hw/virtio/virtio-balloon.c
> +++ b/hw/virtio/virtio-balloon.c
> @@ -29,6 +29,8 @@
> #include "qapi/error.h"
> #include "qapi/qapi-builtin-type-infos.h"
> #include "qapi/qapi-events-machine.h"
> +#include "qapi/qapi-type-infos-machine.h"
> +#include "qapi/qapi-visit-machine.h"
> #include "qapi/visitor.h"
> #include "trace.h"
> #include "qemu/error-report.h"
> @@ -170,33 +172,8 @@ static void balloon_deflate_page(VirtIOBalloon *balloon,
> }
> }
>
> -/*
> - * All stats upto VIRTIO_BALLOON_S_NR /must/ have a
> - * non-NULL name declared here, since these are used
> - * as keys for populating the QDict with stats
> - */
> -static const char *balloon_stat_names[] = {
> - [VIRTIO_BALLOON_S_SWAP_IN] = "stat-swap-in",
> - [VIRTIO_BALLOON_S_SWAP_OUT] = "stat-swap-out",
> - [VIRTIO_BALLOON_S_MAJFLT] = "stat-major-faults",
> - [VIRTIO_BALLOON_S_MINFLT] = "stat-minor-faults",
> - [VIRTIO_BALLOON_S_MEMFREE] = "stat-free-memory",
> -
> - [VIRTIO_BALLOON_S_MEMTOT] = "stat-total-memory",
> - [VIRTIO_BALLOON_S_AVAIL] = "stat-available-memory",
> - [VIRTIO_BALLOON_S_CACHES] = "stat-disk-caches",
> - [VIRTIO_BALLOON_S_HTLB_PGALLOC] = "stat-htlb-pgalloc",
> - [VIRTIO_BALLOON_S_HTLB_PGFAIL] = "stat-htlb-pgfail",
> -
> - [VIRTIO_BALLOON_S_OOM_KILL] = "stat-oom-kills",
> - [VIRTIO_BALLOON_S_ALLOC_STALL] = "stat-alloc-stalls",
> - [VIRTIO_BALLOON_S_ASYNC_SCAN] = "stat-async-scans",
> - [VIRTIO_BALLOON_S_DIRECT_SCAN] = "stat-direct-scans",
> - [VIRTIO_BALLOON_S_ASYNC_RECLAIM] = "stat-async-reclaims",
> -
> - [VIRTIO_BALLOON_S_DIRECT_RECLAIM] = "stat-direct-reclaims",
Not missing here.
> -};
> -G_STATIC_ASSERT(G_N_ELEMENTS(balloon_stat_names) == VIRTIO_BALLOON_S_NR);
> +/* Update VirtioBalloonStats QAPI type when new stats are added */
> +G_STATIC_ASSERT(VIRTIO_BALLOON_S_NR == 16);
The assertion becomes awkward.
What about ...
>
> /*
> * reset_stats - Mark all items in the stats array as unset
> @@ -258,33 +235,31 @@ static void balloon_stats_get_all(Object *obj, Visitor *v, const char *name,
> void *opaque, Error **errp)
> {
> VirtIOBalloon *s = VIRTIO_BALLOON(obj);
> - bool ok = false;
> - int i;
> + VirtioBalloonStats stats = {
> + .stat_swap_in = s->stats[VIRTIO_BALLOON_S_SWAP_IN],
> + .stat_swap_out = s->stats[VIRTIO_BALLOON_S_SWAP_OUT],
> + .stat_major_faults = s->stats[VIRTIO_BALLOON_S_MAJFLT],
> + .stat_minor_faults = s->stats[VIRTIO_BALLOON_S_MINFLT],
> + .stat_free_memory = s->stats[VIRTIO_BALLOON_S_MEMFREE],
> + .stat_total_memory = s->stats[VIRTIO_BALLOON_S_MEMTOT],
> + .stat_available_memory = s->stats[VIRTIO_BALLOON_S_AVAIL],
> + .stat_disk_caches = s->stats[VIRTIO_BALLOON_S_CACHES],
> + .stat_htlb_pgalloc = s->stats[VIRTIO_BALLOON_S_HTLB_PGALLOC],
> + .stat_htlb_pgfail = s->stats[VIRTIO_BALLOON_S_HTLB_PGFAIL],
> + .stat_oom_kills = s->stats[VIRTIO_BALLOON_S_OOM_KILL],
> + .stat_alloc_stalls = s->stats[VIRTIO_BALLOON_S_ALLOC_STALL],
> + .stat_async_scans = s->stats[VIRTIO_BALLOON_S_ASYNC_SCAN],
> + .stat_direct_scans = s->stats[VIRTIO_BALLOON_S_DIRECT_SCAN],
> + .stat_async_reclaims = s->stats[VIRTIO_BALLOON_S_ASYNC_RECLAIM],
> + .stat_direct_reclaims = s->stats[VIRTIO_BALLOON_S_DIRECT_RECLAIM],
> + };
... putting it here? This initializer also needs to be updated when
stats are added.
Another review note... The kernel gives us an array of stats with
well-known indexes. Since we "improved" on that interface, we need to
manually convert to struct. Oh well.
> + VirtioBalloonGuestStats guest_stats = {
> + .last_update = s->stats_last_update,
> + .stats = &stats,
> + };
> + VirtioBalloonGuestStats *argp = &guest_stats;
>
> - if (!visit_start_struct(v, name, NULL, 0, errp)) {
> - return;
> - }
> - if (!visit_type_int(v, "last-update", &s->stats_last_update, errp)) {
> - goto out_end;
> - }
> -
> - if (!visit_start_struct(v, "stats", NULL, 0, errp)) {
> - goto out_end;
> - }
> - for (i = 0; i < VIRTIO_BALLOON_S_NR; i++) {
> - if (!visit_type_uint64(v, balloon_stat_names[i], &s->stats[i], errp)) {
> - goto out_nested;
> - }
> - }
> - ok = visit_check_struct(v, errp);
> -out_nested:
> - visit_end_struct(v, NULL);
> -
> - if (ok) {
> - visit_check_struct(v, errp);
> - }
> -out_end:
> - visit_end_struct(v, NULL);
> + visit_type_VirtioBalloonGuestStats(v, name, &argp, errp);
> }
>
> static void balloon_stats_get_poll_interval(Object *obj, Visitor *v,
> @@ -1037,7 +1012,8 @@ static void virtio_balloon_instance_init(Object *obj)
> s->free_page_hint_cmd_id = VIRTIO_BALLOON_FREE_PAGE_HINT_CMD_ID_MIN;
> s->free_page_hint_notify.notify = virtio_balloon_free_page_hint_notify;
>
> - object_property_add(obj, "guest-stats", "guest statistics",
> + object_property_add_qapi(obj, "guest-stats",
> + &VirtioBalloonGuestStats_type_info,
> balloon_stats_get_all, NULL, NULL, NULL);
The @type reported by qom-list & friends changes from "guest statistics"
to "VirtioBalloonStats". Such changes can be compatibility breaks.
We accept this one, because:
1. What "guest statistics" might mean was never documented.
ObjectPropertyInfo's (flawed) comment covers only "primitive", child
and link types, which misleadingly suggests values like this one
don't exist.
2. We are not aware of anything relying on it, and we can't quite see
why anything would want to rely on it.
3. @type is a bad interface we ought to deprecate in favor of
@qapi-type.
All this needs to be noted in the commit message. Perhaps even in
release notes. I guess the latter will be easier if we do deprecate
@type.
>
> object_property_add_qapi(obj, "guest-stats-polling-interval", &int_type_info,
> diff --git a/qapi/machine.json b/qapi/machine.json
> index 9b145c635baf..34be3156270c 100644
> --- a/qapi/machine.json
> +++ b/qapi/machine.json
> @@ -1126,6 +1126,98 @@
> ##
> { 'struct': 'BalloonInfo', 'data': {'actual': 'int' } }
>
> +##
> +# @VirtioBalloonStats:
> +#
> +# VirtIO balloon device guest memory statistics.
> +#
> +# If the guest doesn't support a particular stat, or if it couldn't
> +# be retrieved, its value will be -1.
Please use the revised syntax for introductions:
##
# @name: introduction, best to keep it brief, but you may continue it
# like this if necessary. If your text need to refer to arguments
# / members, it's almost certainly not brief introduction anymore.
#
# Additional text can go here. But do consider putting it further
# down.
I apologize for the inconvenience. We need this to eliminate certain
syntactic ambiguities that plagued the doc generator. We'll need it
some more for the doc inliner.
> +#
> +# @stat-swap-in: The amount of memory that has been
> +# swapped in (in bytes).
Wrap lines at column 70, please.
> +#
> +# @stat-swap-out: The amount of memory that has been
> +# swapped out to disk (in bytes).
> +#
> +# @stat-major-faults: The number of major page faults
> +# that have occurred.
> +#
> +# @stat-minor-faults: The number of minor page faults
> +# that have occurred.
> +#
> +# @stat-free-memory: The amount of memory not being used
> +# for any purpose (in bytes).
> +#
> +# @stat-total-memory: The total amount of memory available
> +# (in bytes).
> +#
> +# @stat-available-memory: An estimate of how much memory is available
> +# (in bytes) for starting new applications, without pushing the
> +# system to swap.
> +#
> +# @stat-disk-caches: The amount of memory, in bytes, that can be
> +# quickly reclaimed without additional I/O. Typically these pages
> +# are used for caching files from disk.
> +#
> +# @stat-htlb-pgalloc: The number of successful hugetlb page
> +# allocations
> +#
> +# @stat-htlb-pgfail: The number of failed hugetlb page
> +# allocations
> +#
> +# @stat-oom-kills: The number of OOM killer invocations
> +#
> +# @stat-alloc-stalls: The number of memory allocation stalls
> +#
> +# @stat-async-scans: The number of memory scanned asynchronously
> +#
> +# @stat-direct-scans: The number of memory scanned directly
> +#
> +# @stat-async-reclaims: The number of memory reclaimed asynchronously
> +#
> +# @stat-direct-reclaims: The number of memory reclaimed directly
> +#
> +# Since: 11.2
The actual interface, namely the device property, is much older (1.4?).
Do we care? I'm not sure; this isn't part of QMP proper, it's for use
with QOM, where documentation has always been rather weak.
> +##
> +{ 'struct': 'VirtioBalloonStats',
> + 'data': {
> + 'stat-swap-in': 'uint64',
> + 'stat-swap-out': 'uint64',
> + 'stat-major-faults': 'uint64',
> + 'stat-minor-faults': 'uint64',
> + 'stat-free-memory': 'uint64',
> + 'stat-total-memory': 'uint64',
> + 'stat-available-memory': 'uint64',
> + 'stat-disk-caches': 'uint64',
> + 'stat-htlb-pgalloc': 'uint64',
> + 'stat-htlb-pgfail': 'uint64',
> + 'stat-oom-kills': 'uint64',
> + 'stat-alloc-stalls': 'uint64',
> + 'stat-async-scans': 'uint64',
> + 'stat-direct-scans': 'uint64',
> + 'stat-async-reclaims': 'uint64',
> + 'stat-direct-reclaims': 'uint64' } }
I don't like the "stat-" prefix, but we can't change that now.
> +
> +##
> +# @VirtioBalloonGuestStats:
> +#
> +# Guest statistics from the VirtIO balloon device.
Please use the revised syntax for introductions.
> +#
> +# @last-update: timestamp in seconds of the last stats
> +# update from the guest (since this timestamp is generated
> +# by the host, a buggy guest can't influence its value),
> +# or 0 if no update has been received yet.
The original text is
* A key named last-update, which contains the last stats update
timestamp in seconds. Since this timestamp is generated by the host,
a buggy guest can't influence its value. The value is 0 if the guest
has not updated the stats (yet).
Threee sentences instead of one with a parenthesis. I find this easier
to read.
> +#
> +# @stats: balloon memory statistics
> +#
> +# Since: 11.2
> +##
> +{ 'struct': 'VirtioBalloonGuestStats',
> + 'data': {
> + 'last-update': 'int',
> + 'stats': 'VirtioBalloonStats' } }
> +
> ##
> # @query-balloon:
> # Return information about the balloon device.
next prev parent reply other threads:[~2026-10-20 13:00 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-20 10:45 [PATCH v7 00/65] Hi marcandre.lureau
2026-10-20 10:45 ` [PATCH v7 01/65] qapi/schema: Rename .lookup_entity() and tighten return type marcandre.lureau
2026-10-20 10:45 ` [PATCH v7 02/65] qapi: Ease access to introspection names marcandre.lureau
2026-10-20 10:45 ` [PATCH v7 03/65] qapi/introspect: Simplify masked name comment emission slighly marcandre.lureau
2026-10-20 10:45 ` [PATCH v7 04/65] qapi/introspect: Don't elide types marcandre.lureau
2026-10-20 10:45 ` [PATCH v7 05/65] qapi: QAPISchemaVisitor.visit_needed() is now unused, drop marcandre.lureau
2026-10-20 10:45 ` [PATCH v7 06/65] qapi/introspect: Tweak integer type masking marcandre.lureau
2026-10-20 10:45 ` [PATCH v7 07/65] qapi: add QAPITypeInfo struct definition Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 08/65] qapi/gen: fix _module_basename for multi-dash 'what' parameters Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 09/65] qapi: add type-infos generator Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 10/65] meson: add qapi-type-infos-*.c/h to build Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 11/65] qom: add qapi_type field to ObjectProperty Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 12/65] qapi/qom: add qapi-type field to ObjectPropertyInfo Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 13/65] qom/qmp: populate qapi-type in QMP handlers Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 14/65] qom/qmp: populate description & default-value in qom_property_info() Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 15/65] qom: add object_property_set_default_enum() Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 16/65] qom: add object_{class_}property_add_qapi Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 17/65] qom: add object_{class_}property_add_qapi_enum Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 18/65] tests: update check-qom-proplist for QAPI-aware property registration Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 19/65] qom: convert QAPI enum properties to QAPI-aware registration Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 20/65] qom: convert struct " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 21/65] x86: convert OnOffAuto " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 22/65] microvm: " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 23/65] pc: convert OnOffAuto vmport property " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 24/65] arm/virt: convert OnOffAuto acpi " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 25/65] riscv/virt: convert OnOffAuto properties " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 26/65] loongarch/virt: " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 27/65] hostmem-file: convert OnOffAuto rom property " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 28/65] sev: convert OnOffAuto legacy-vm-type " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 29/65] whpx: convert OnOffAuto hyperv " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 30/65] whpx: convert OnOffAuto arch properties " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 31/65] accel/kvm: convert OnOffSplit property " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 32/65] whpx: " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 33/65] hw/ppc/spapr_caps: fix property type name Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 34/65] ppc/spapr-caps: convert to QAPI-aware property registration Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 35/65] net/colo-compare: fix compare_timeout setter visitor type Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 36/65] net/colo-compare: fix max_queue_size " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 37/65] hw/misc/xlnx-versal-trng: add missing getter for fips-fault-events Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 38/65] qom: convert scalar properties to QAPI-aware registration Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 39/65] i386/cpu: convert strList property " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 40/65] accel/hvf: convert OnOffSplit " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 41/65] i386/x86: convert SgxEPCList " Marc-André Lureau
2026-10-20 10:45 ` [PATCH v7 42/65] virtio-balloon: convert guest-stats property to QAPI type Marc-André Lureau
2026-10-20 12:59 ` Markus Armbruster [this message]
2026-10-20 10:46 ` [PATCH v7 43/65] qom: replace object_property_add_tm with StructTm " Marc-André Lureau
2026-10-20 13:25 ` Markus Armbruster
2026-10-20 10:46 ` [PATCH v7 44/65] hw/nvdimm: convert UUID property to QAPI-aware registration Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 45/65] hw/s390-virtio-ccw: convert loadparm " Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 46/65] hw/ppc/spapr_drc: convert fdt " Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 47/65] hw/s390x: convert BootCertificatesList " Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 48/65] hw/gpio/pca955x: use QAPI enums for led and pin properties Marc-André Lureau
2026-10-20 20:28 ` Miles Glenn
2026-10-20 10:46 ` [PATCH v7 49/65] include: add QEMU_REPEAT helper macro Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 50/65] hw/gpio/pca955x: convert pin/led property to QAPI-aware enum Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 51/65] hw/pci: change the busnr type to uint8 Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 52/65] qdev: add qapi_type field to PropertyInfo with fallback registration Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 53/65] qdev: convert core PropertyInfo definitions to use qapi_type Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 54/65] qdev: adjust PciDevfn declared type Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 55/65] qdev: convert system PropertyInfo definitions to use qapi_type Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 56/65] hw: convert device-local " Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 57/65] target/riscv: convert " Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 58/65] qdev: " Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 59/65] qdev: introduce typed array PropertyInfos Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 60/65] qdev: simplify DEFINE_PROP_ARRAY and remove generic array PropertyInfo Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 61/65] qdev: remove deprecated PropertyInfo.type and .enum_table fields Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 62/65] hw/i386: convert PCSouthBridgeOption to QAPI enum Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 63/65] qom: remove old enum property registration API Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 64/65] qom: use QAPITypeInfo in object_property_get_enum Marc-André Lureau
2026-10-20 10:46 ` [PATCH v7 65/65] tests/qmp-cmd-test: assert qapi-type resolves in query-qmp-schema Marc-André Lureau
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=87h5igplx1.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=17746591750@163.com \
--cc=FangSheng.Huang@amd.com \
--cc=adityag@linux.ibm.com \
--cc=alex@shazbot.org \
--cc=alifm@linux.ibm.com \
--cc=alistair.francis@wdc.com \
--cc=alistair@alistair23.me \
--cc=amachhiw@linux.ibm.com \
--cc=anisa.su@samsung.com \
--cc=anisinha@redhat.com \
--cc=anthony@xenproject.org \
--cc=arei.gonglei@huawei.com \
--cc=atar4qemu@gmail.com \
--cc=berrange@redhat.com \
--cc=berto@igalia.com \
--cc=borntraeger@linux.ibm.com \
--cc=brueckner@linux.ibm.com \
--cc=chao.liu@processmission.com \
--cc=clg@kaod.org \
--cc=clg@redhat.com \
--cc=cohuck@redhat.com \
--cc=conor@kernel.org \
--cc=daniel.barboza@oss.qualcomm.com \
--cc=david@kernel.org \
--cc=den@openvz.org \
--cc=eblake@redhat.com \
--cc=edgar.iglesias@gmail.com \
--cc=elena.ufimtseva@oracle.com \
--cc=eric.auger@redhat.com \
--cc=fam@euphon.net \
--cc=farman@linux.ibm.com \
--cc=farosas@suse.de \
--cc=foss@defmacro.it \
--cc=graf@amazon.com \
--cc=harshpb@linux.ibm.com \
--cc=hreitz@redhat.com \
--cc=iii@linux.ibm.com \
--cc=imammedo@redhat.com \
--cc=its@irrelevant.dk \
--cc=jag.raman@oracle.com \
--cc=jamin_lin@aspeedtech.com \
--cc=jasowangio@gmail.com \
--cc=jiaxun.yang@flygoat.com \
--cc=jic23@kernel.org \
--cc=jiri@resnulli.us \
--cc=jjherne@linux.ibm.com \
--cc=john.levon@nutanix.com \
--cc=jsnow@redhat.com \
--cc=junjie.cao@intel.com \
--cc=kane_chen@aspeedtech.com \
--cc=kbusch@kernel.org \
--cc=kfting@nuvoton.com \
--cc=kkostiuk@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kwolf@redhat.com \
--cc=linux-cxl@vger.kernel.org \
--cc=liwei1518@gmail.com \
--cc=lixianglai@loongson.cn \
--cc=lizhijian@fujitsu.com \
--cc=luc@lmichel.fr \
--cc=lvivier@redhat.com \
--cc=maobibo@loongson.cn \
--cc=marcandre.lureau@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mchehab+huawei@kernel.org \
--cc=michael.roth@amd.com \
--cc=milesg@linux.ibm.com \
--cc=mjrosato@linux.ibm.com \
--cc=mohamed@unpredictable.fr \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=pasic@linux.ibm.com \
--cc=pbarbuda@microsoft.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=phil@philjordan.eu \
--cc=philmd@oss.qualcomm.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rathc@linux.ibm.com \
--cc=rbolshakov@ddn.com \
--cc=richard.henderson@linaro.org \
--cc=sam@rfc1149.net \
--cc=sebastian.huber@embedded-brains.de \
--cc=slp@redhat.com \
--cc=sstabellini@kernel.org \
--cc=stefanb@linux.vnet.ibm.com \
--cc=tangtao1634@phytium.com.cn \
--cc=thanos.makatos@nutanix.com \
--cc=titusr@google.com \
--cc=wuhaotsh@google.com \
--cc=xen-devel@lists.xenproject.org \
--cc=yoshinori.sato@nifty.com \
--cc=zhangckid@gmail.com \
--cc=zhao1.liu@intel.com \
--cc=zhenwei.pi@linux.dev \
--cc=zhiwei_liu@linux.alibaba.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 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.