[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC v5 1/6] qmp: add QMP command x-debug-query-virtio
From: |
Eric Blake |
Subject: |
Re: [RFC v5 1/6] qmp: add QMP command x-debug-query-virtio |
Date: |
Thu, 18 Mar 2021 15:46:25 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 |
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.
> + }
> +
> + 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
- [RFC v5 0/6] hmp,qmp: Add some commands to introspect virtio deices, Jonah Palmer, 2021/03/18
- [RFC v5 3/6] qmp: decode feature bits in virtio-status, Jonah Palmer, 2021/03/18
- [RFC v5 4/6] qmp: add QMP command x-debug-virtio-queue-status, Jonah Palmer, 2021/03/18
- [RFC v5 5/6] qmp: add QMP command x-debug-virtio-queue-element, Jonah Palmer, 2021/03/18
- [RFC v5 2/6] qmp: add QMP command x-debug-virtio-status, Jonah Palmer, 2021/03/18
- [RFC v5 6/6] hmp: add virtio commands, Jonah Palmer, 2021/03/18
- [RFC v5 1/6] qmp: add QMP command x-debug-query-virtio, Jonah Palmer, 2021/03/18
- Re: [RFC v5 0/6] hmp, qmp: Add some commands to introspect virtio deices, no-reply, 2021/03/18