On 3/18/21 11:29 AM, Jonah Palmer wrote: > From: Laurent Vivier <lviv...@redhat.com> > > This new command lists all the instances of VirtIODevice with > their path and virtio type > > Signed-off-by: Laurent Vivier <lviv...@redhat.com> > Reviewed-by: Eric Blake <ebl...@redhat.com> > Signed-off-by: Jonah Palmer <jonah.pal...@oracle.com> > ---
We've missed soft freeze for 6.0, and this feels like a new feature; therefore... > +++ b/hw/virtio/virtio.c > > +VirtioInfoList *qmp_x_debug_query_virtio(Error **errp) > +{ > + VirtioInfoList *list = NULL; > + VirtioInfoList *node; > + VirtIODevice *vdev; > + > + QTAILQ_FOREACH(vdev, &virtio_list, next) { > + DeviceState *dev = DEVICE(vdev); > + node = g_new0(VirtioInfoList, 1); > + node->value = g_new(VirtioInfo, 1); > + node->value->path = g_strdup(dev->canonical_path); > + node->value->type = qapi_enum_parse(&VirtioType_lookup, vdev->name, > + VIRTIO_TYPE_UNKNOWN, NULL); > + node->next = list; > + list = node; This should be updated to use QAPI_LIST_PREPEND rather than open coding. > + } > + > + return list; > +} > + > static const TypeInfo virtio_device_info = { > .name = TYPE_VIRTIO_DEVICE, > .parent = TYPE_DEVICE, > diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h > index b7ece7a..2470e09 100644 > --- a/include/hw/virtio/virtio.h > +++ b/qapi/virtio.json > @@ -0,0 +1,68 @@ > +## > +# = Virtio devices > +## > + > +## > +# @VirtioType: > +# > +# An enumeration of Virtio device types. > +# > +# Since: 6.0 ...this now needs to reference 6.1. > +## > +{ 'enum': 'VirtioType', > + 'data': [ 'unknown', 'virtio-9p', 'virtio-blk', 'virtio-serial', > + 'virtio-gpu', 'virtio-input', 'virtio-net', 'virtio-scsi', > + 'vhost-user-fs', 'vhost-vsock', 'virtio-balloon', > 'virtio-crypto', > + 'virtio-iommu', 'virtio-pmem', 'virtio-rng' ] > +} > + > +## > +# @VirtioInfo: > +# > +# Information about a given VirtIODevice > +# > +# @path: VirtIO device canonical path. > +# > +# @type: VirtIO device type. > +# > +# Since: 6.0 and throughout the series (I'll quit pointing it out) > +## > +# @x-debug-query-virtio: > +# > +# Return the list of all VirtIO devices > +# > +# Returns: list of @VirtioInfo > +# > +# Since: 6.0 > +# > +# Example: > +# > +# -> { "execute": "x-debug-query-virtio" } That said, adding an 'x-' experimental feature is NOT locking us down, so if some maintainer still wants to include this in -rc1 on the grounds that it will help debugging other things, rather than pushing it out to 6.1 as a new feature, then keeping things as 6.0 is tolerable in that border-line case. (If it misses -rc1, then I will become more adamant that it does not belong in 6.0) -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org