On 3/18/21 11:29 AM, Jonah Palmer wrote:From: Laurent Vivier <lvivier@redhat.com> This new command lists all the instances of VirtIODevice with their path and virtio type Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Jonah Palmer <jonah.palmer@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.
Ok! I'll update this.
+ } + + 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.
And these!
+## +{ '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.0and 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)
Right, this patch is not at all urgent for 6.0. I just wanted to send this out to get a review. Best, Jonah