From: Markus Armbruster <armbru@redhat.com>
To: Jonah Palmer <jonah.palmer@oracle.com>
Cc: mst@redhat.com, qemu_oss@crudebyte.com, qemu-devel@nongnu.org,
kraxel@redhat.com, si-wei.liu@oracle.com,
joao.m.martins@oracle.com, eblake@redhat.com,
qemu-block@nongnu.org, david@redhat.com, arei.gonglei@huawei.com,
marcandre.lureau@redhat.com, lvivier@redhat.com,
thuth@redhat.com, michael.roth@amd.com, groug@kaod.org,
dgilbert@redhat.com, eric.auger@redhat.com, stefanha@redhat.com,
boris.ostrovsky@oracle.com, kwolf@redhat.com,
mathieu.poirier@linaro.org, raphael.norwitz@nutanix.com,
pbonzini@redhat.com
Subject: Re: [PATCH v9 5/8] qmp: decode feature & status bits in virtio-status
Date: Wed, 10 Nov 2021 14:49:18 +0100 [thread overview]
Message-ID: <87fss4w275.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <1636539792-20967-6-git-send-email-jonah.palmer@oracle.com> (Jonah Palmer's message of "Wed, 10 Nov 2021 05:23:09 -0500")
Jonah Palmer <jonah.palmer@oracle.com> writes:
> From: Laurent Vivier <lvivier@redhat.com>
>
> Display feature names instead of bitmaps for host, guest, and
> backend for VirtIODevice.
>
> Display status names instead of bitmaps for VirtIODevice.
>
> Display feature names instead of bitmaps for backend, protocol,
> acked, and features (hdev->features) for vhost devices.
>
> Decode features according to device type. Decode status
> according to configuration status bitmap (config_status_map).
> Decode vhost user protocol features according to vhost user
> protocol bitmap (vhost_user_protocol_map).
>
> Transport features are on the first line. Undecoded bits
> (if any) are stored in a separate field. Vhost device field
> wont show if there's no vhost active for a given VirtIODevice.
>
> Signed-off-by: Jonah Palmer <jonah.palmer@oracle.com>
[...]
> diff --git a/qapi/virtio.json b/qapi/virtio.json
> index 54212f2..6b11d52 100644
> --- a/qapi/virtio.json
> +++ b/qapi/virtio.json
> @@ -67,6 +67,466 @@
> }
>
> ##
> +# @VirtioType:
> +#
> +# An enumeration of Virtio device types (or names)
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioType',
> + 'data': [ 'virtio-net', 'virtio-blk', 'virtio-serial', 'virtio-rng',
> + 'virtio-balloon', 'virtio-iomem', 'virtio-rpmsg',
> + 'virtio-scsi', 'virtio-9p', 'virtio-mac-wlan',
> + 'virtio-rproc-serial', 'virtio-caif', 'virtio-mem-balloon',
> + 'virtio-gpu', 'virtio-clk', 'virtio-input', 'vhost-vsock',
> + 'virtio-crypto', 'virtio-signal', 'virtio-pstore',
> + 'virtio-iommu', 'virtio-mem', 'virtio-sound', 'vhost-user-fs',
> + 'virtio-pmem', 'virtio-mac-hwsim', 'vhost-user-i2c',
> + 'virtio-bluetooth' ]
> +}
> +
> +##
> +# @VirtioConfigStatus:
> +#
> +# An enumeration of Virtio device configuration statuses
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioConfigStatus',
> + 'data': [ 'driver-ok', 'features-ok', 'driver', 'needs-reset',
> + 'failed', 'acknowledge' ]
> +}
> +
> +##
> +# @VirtioDeviceStatus:
> +#
> +# A structure defined to list the configuration statuses of a virtio
> +# device
> +#
> +# @dev-status: List of decoded configuration statuses of the virtio
> +# device
> +#
> +# @unknown-statuses: virtio device statuses bitmap that have not been decoded
Why is @dev-status singular, and @unknown-statuses plural?
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceStatus',
> + 'data': { 'dev-status': [ 'VirtioConfigStatus' ],
> + '*unknown-statuses': 'uint8' } }
> +
> +##
> +# @VhostProtocolFeature:
> +#
> +# An enumeration of Vhost User protocol features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VhostProtocolFeature',
> + 'data': [ 'mq', 'log-shmfd', 'rarp', 'reply-ack', 'net-mtu',
> + 'slave-req', 'cross-endian', 'crypto-session', 'pagefault',
> + 'config', 'slave-send-fd', 'host-notifier',
> + 'inflight-shmfd', 'reset-device', 'inband-notifications',
> + 'configure-mem-slots' ]
> +}
> +
> +##
> +# @VhostDeviceProtocols:
> +#
> +# A structure defined to list the vhost user protocol features of a
> +# Vhost User device
> +#
> +# @features: List of decoded vhost user protocol features of a vhost
> +# user device
> +#
> +# @unknown-protocols: vhost user device protocol features bitmap that
> +# have not been decoded
Why are the known protocol features called @features, and the unknown
ones @unknown-protocols?
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VhostDeviceProtocols',
> + 'data': { 'features': [ 'VhostProtocolFeature' ],
> + '*unknown-protocols': 'uint64' } }
> +
> +##
> +# @VirtioTransportFeature:
> +#
> +# An enumeration of Virtio device transport features, including virtio-ring
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioTransportFeature',
> + 'data': [ 'notify-on-empty', 'any-layout', 'protocol-features',
> + 'version-1', 'iommu-platform', 'ring-packed', 'order-platform',
> + 'sr-iov', 'indirect-desc', 'event-idx' ]
> +}
> +
> +##
> +# @VirtioMemFeature:
> +#
> +# An enumeration of Virtio mem features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioMemFeature',
> + 'data': [ 'acpi-pxm' ]
> +}
> +
> +##
> +# @VirtioSerialFeature:
> +#
> +# An enumeration of Virtio serial/console features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioSerialFeature',
> + 'data': [ 'size', 'multiport', 'emerg-write' ]
> +}
> +
> +##
> +# @VirtioBlkFeature:
> +#
> +# An enumeration of Virtio block features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioBlkFeature',
> + 'data': [ 'size-max', 'seg-max', 'geometry', 'ro', 'blk-size',
> + 'topology', 'mq', 'discard', 'write-zeroes', 'barrier',
> + 'scsi', 'flush', 'config-wce', 'log-all' ]
> +}
> +
> +##
> +# @VirtioGpuFeature:
> +#
> +# An enumeration of Virtio gpu features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioGpuFeature',
> + 'data': [ 'virgl', 'edid', 'resource-uuid', 'resource-blob',
> + 'log-all' ]
> +}
> +
> +##
> +# @VirtioNetFeature:
> +#
> +# An enumeration of Virtio net features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioNetFeature',
> + 'data': [ 'csum', 'guest-csum', 'ctrl-guest-offloads', 'mtu', 'mac',
> + 'guest-tso4', 'guest-tso6', 'guest-ecn', 'guest-ufo',
> + 'host-tso4', 'host-tso6', 'host-ecn', 'host-ufo',
> + 'mrg-rxbuf', 'status', 'ctrl-vq', 'ctrl-rx', 'ctrl-vlan',
> + 'ctrl-rx-extra', 'guest-announce', 'mq', 'ctrl-mac-addr',
> + 'hash-report', 'rss', 'rsc-ext', 'standby', 'speed-duplex',
> + 'gso', 'virtio-net-hdr', 'log-all' ]
> +}
> +
> +##
> +# @VirtioScsiFeature:
> +#
> +# An enumeration of Virtio scsi features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioScsiFeature',
> + 'data': [ 'inout', 'hotplug', 'change', 't10-pi', 'log-all' ]
> +}
> +
> +##
> +# @VirtioBalloonFeature:
> +#
> +# An enumeration of Virtio balloon features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioBalloonFeature',
> + 'data': [ 'must-tell-host', 'stats-vq', 'deflate-on-oom',
> + 'free-page-hint', 'page-poison', 'reporting' ]
> +}
> +
> +##
> +# @VirtioIommuFeature:
> +#
> +# An enumeration of Virtio iommu features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioIommuFeature',
> + 'data': [ 'input-range', 'domain-range', 'map-unmap', 'bypass',
> + 'probe', 'mmio' ]
> +}
> +
> +##
> +# @VirtioInputFeature:
> +#
> +# An enumeration of Virtio input features. Note that virtio-input
> +# has no device-specific features except when its vhost is active,
> +# then it may have the VHOST_F_LOG_ALL feature.
VHOST_F_LOG_ALL is talking C. Better, I think: "may have the @log-all
feature. More of the same below.
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioInputFeature',
> + 'data': [ 'log-all' ]
> +}
> +
> +##
> +# @VhostUserFsFeature:
> +#
> +# An enumeration of vhost user FS features. Note that vhost-user-fs
> +# has no device-specific features other than the vhost-common
> +# VHOST_F_LOG_ALL feature.
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VhostUserFsFeature',
> + 'data': [ 'log-all' ]
> +}
> +
> +##
> +# @VhostVsockFeature:
> +#
> +# An enumeration of vhost vsock features. Note that vhost-vsock has
> +# no device-specific features other than the vhost-common
> +# VHOST_F_LOG_ALL feature.
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VhostVsockFeature',
> + 'data': [ 'log-all' ]
> +}
> +
> +##
> +# @VirtioCryptoFeature:
> +#
> +# An enumeration of virtio crypto features. Not that virtio-crypto
> +# has no device-specific features other than when it is a vhost
> +# device, then it may have the VHOST_F_LOG_ALL feature.
> +#
> +# Since: 6.3
> +##
> +
> +{ 'enum': 'VirtioCryptoFeature',
> + 'data': [ 'log-all' ]
> +}
Four identical enum types... any particular reason against just one?
> +
> +##
> +# @VirtioDeviceFeaturesBase:
> +#
> +# The common fields that apply to all Virtio devices
> +#
> +# @type: virtio device name
> +# @transport: the list of transport features of the virtio device
> +# @unknown-features: virtio device features bitmap that have not been decoded
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesBase',
> + 'data': { 'type': 'VirtioType',
> + 'transport': [ 'VirtioTransportFeature' ],
> + '*unknown-features': 'uint64' } }
Pardon my virtio ignorance... are the @unknown-features unknown
transport features?
> +
> +##
> +# @VirtioDeviceFeaturesOptionsMem:
> +#
> +# The options that apply to Virtio mem devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsMem',
> + 'data': { 'features': [ 'VirtioMemFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsSerial:
> +#
> +# The options that apply to Virtio serial devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsSerial',
> + 'data': { 'features': [ 'VirtioSerialFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsBlk:
> +#
> +# The options that apply to Virtio block devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsBlk',
> + 'data': { 'features': [ 'VirtioBlkFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsGpu:
> +#
> +# The options that apply to Virtio GPU devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsGpu',
> + 'data': { 'features': [ 'VirtioGpuFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsNet:
> +#
> +# The options that apply to Virtio net devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsNet',
> + 'data': { 'features': [ 'VirtioNetFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsScsi:
> +#
> +# The options that apply to Virtio SCSI devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsScsi',
> + 'data': { 'features': [ 'VirtioScsiFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsBalloon:
> +#
> +# The options that apply to Virtio balloon devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsBalloon',
> + 'data': { 'features': [ 'VirtioBalloonFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsIommu:
> +#
> +# The options that apply to Virtio IOMMU devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsIommu',
> + 'data': { 'features': [ 'VirtioIommuFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsInput:
> +#
> +# The options that apply to Virtio input devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsInput',
> + 'data': { 'features': [ 'VirtioInputFeature' ] } }
> +
> +##
> +# @VhostDeviceFeaturesOptionsFs:
> +#
> +# The options that apply to vhost-user-fs devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VhostDeviceFeaturesOptionsFs',
> + 'data': { 'features': [ 'VhostUserFsFeature' ] } }
> +
> +##
> +# @VhostDeviceFeaturesOptionsVsock:
> +#
> +# The options that apply to vhost-vsock devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VhostDeviceFeaturesOptionsVsock',
> + 'data': { 'features': [ 'VhostVsockFeature' ] } }
> +
> +##
> +# @VirtioDeviceFeaturesOptionsCrypto:
> +#
> +# The options that apply to virtio-crypto devices
> +#
> +# @features: List of device features
> +#
> +# Since: 6.3
> +##
> +
> +{ 'struct': 'VirtioDeviceFeaturesOptionsCrypto',
> + 'data': { 'features': [ 'VirtioCryptoFeature' ] } }
If you replace the four identical enum types by one, you get four
identical struct types here. Same treatment.
> +
> +##
> +# @VirtioDeviceFeatures:
> +#
> +# A union to define the list of features for a virtio device
> +#
> +# Since: 6.3
> +##
> +
> +{ 'union': 'VirtioDeviceFeatures',
> + 'base': 'VirtioDeviceFeaturesBase',
> + 'discriminator': 'type',
> + 'data': { 'virtio-serial': 'VirtioDeviceFeaturesOptionsSerial',
> + 'virtio-blk': 'VirtioDeviceFeaturesOptionsBlk',
> + 'virtio-gpu': 'VirtioDeviceFeaturesOptionsGpu',
> + 'virtio-net': 'VirtioDeviceFeaturesOptionsNet',
> + 'virtio-scsi': 'VirtioDeviceFeaturesOptionsScsi',
> + 'virtio-balloon': 'VirtioDeviceFeaturesOptionsBalloon',
> + 'virtio-iommu': 'VirtioDeviceFeaturesOptionsIommu',
> + 'virtio-input': 'VirtioDeviceFeaturesOptionsInput',
> + 'vhost-user-fs': 'VhostDeviceFeaturesOptionsFs',
> + 'vhost-vsock': 'VhostDeviceFeaturesOptionsVsock',
> + 'virtio-crypto': 'VirtioDeviceFeaturesOptionsCrypto',
> + 'virtio-mem': 'VirtioDeviceFeaturesOptionsMem' } }
> +
> +##
> # @VhostStatus:
> #
> # Information about a vhost device. This information will only be
> @@ -106,10 +566,10 @@
> 'n-tmp-sections': 'int',
> 'nvqs': 'uint32',
> 'vq-index': 'int',
> - 'features': 'uint64',
> - 'acked-features': 'uint64',
> - 'backend-features': 'uint64',
> - 'protocol-features': 'uint64',
> + 'features': 'VirtioDeviceFeatures',
> + 'acked-features': 'VirtioDeviceFeatures',
> + 'backend-features': 'VirtioDeviceFeatures',
> + 'protocol-features': 'VhostDeviceProtocols',
> 'max-queues': 'uint64',
> 'backend-cap': 'uint64',
> 'log-enabled': 'bool',
> @@ -174,12 +634,12 @@
> 'data': { 'name': 'str',
> 'device-id': 'uint16',
> 'vhost-started': 'bool',
> - 'guest-features': 'uint64',
> - 'host-features': 'uint64',
> - 'backend-features': 'uint64',
> + 'guest-features': 'VirtioDeviceFeatures',
> + 'host-features': 'VirtioDeviceFeatures',
> + 'backend-features': 'VirtioDeviceFeatures',
> 'device-endian': 'VirtioStatusEndianness',
> 'num-vqs': 'int',
> - 'status': 'uint8',
> + 'status': 'VirtioDeviceStatus',
> 'isr': 'uint8',
> 'queue-sel': 'uint16',
> 'vm-running': 'bool',
> @@ -191,7 +651,7 @@
> 'disable-legacy-check': 'bool',
> 'bus-name': 'str',
> 'use-guest-notifier-mask': 'bool',
> - 'vhost-dev': 'VhostStatus' } }
> + '*vhost-dev': 'VhostStatus' } }
>
> ##
> # @x-query-virtio-status:
> @@ -221,28 +681,31 @@
> # "name": "virtio-crypto",
> # "started": true,
> # "device-id": 20,
> -# "vhost-dev": {
> -# "n-tmp-sections": 0,
> -# "n-mem-sections": 0,
> -# "max-queues": 0,
> -# "backend-cap": 0,
> -# "log-size": 0,
> -# "backend-features": 0,
> -# "nvqs": 0,
> -# "protocol-features": 0,
> -# "vq-index": 0,
> -# "log-enabled": false,
> -# "acked-features": 0,
> -# "features": 0
> +# "backend-features": {
> +# "transport": [],
> +# "type": "virtio-crypto",
> +# "features": []
> # },
> -# "backend-features": 0,
> # "start-on-kick": false,
> # "isr": 1,
> # "broken": false,
> -# "status": 15,
> +# "status": {
> +# "dev-status": ["acknowledge", "driver", "features-ok",
> +# "driver-ok"]
> +# },
> # "num-vqs": 2,
> -# "guest-features": 5100273664,
> -# "host-features": 6325010432,
> +# "guest-features": {
> +# "transport": ["event-idx", "indirect-desc", "version-1"],
> +# "type": "virtio-crypto",
> +# "features": []
> +# },
> +# "host-features": {
> +# "transport": ["protocol-features", "event-idx",
> +# "indirect-desc", "version-1", "any-layout",
> +# "notify-on-empty"],
> +# "type": "virtio-crypto",
> +# "features": []
> +# },
> # "use-guest-notifier-mask": true,
> # "vm-running": true,
> # "queue-sel": 1,
> @@ -270,22 +733,71 @@
> # "max-queues": 1,
> # "backend-cap": 2,
> # "log-size": 0,
> -# "backend-features": 0,
> +# "backend-features": {
> +# "transport": [],
> +# "type": "virtio-net",
> +# "features": []
> +# },
> # "nvqs": 2,
> -# "protocol-features": 0,
> +# "protocol-features": {
> +# "features": []
> +# },
> # "vq-index": 0,
> # "log-enabled": false,
> -# "acked-features": 5100306432,
> -# "features": 13908344832
> +# "acked-features": {
> +# "transport": ["event-idx", "indirect-desc", "version-1",
> +# "any-layout", "notify-on-empty"],
> +# "type": "virtio-net",
> +# "features": ["mrg-rxbuf"]
> +# },
> +# "features": {
> +# "transport": ["event-idx", "indirect-desc",
> +# "iommu-platform", "version-1", "any-layout",
> +# "notify-on-empty"],
> +# "type": "virtio-net",
> +# "features": ["log-all", "mrg-rxbuf"]
> +# }
> +# },
> +# "backend-features": {
> +# "transport": ["protocol-features", "event-idx", "indirect-desc",
> +# "version-1", "any-layout", "notify-on-empty"],
> +# "type": "virtio-net",
> +# "features": ["gso", "ctrl-mac-addr", "guest-announce", "ctrl-rx-extra",
> +# "ctrl-vlan", "ctrl-rx", "ctrl-vq", "status", "mrg-rxbuf",
> +# "host-ufo", "host-ecn", "host-tso6", "host-tso4",
> +# "guest-ufo", "guest-ecn", "guest-tso6", "guest-tso4",
> +# "mac", "ctrl-guest-offloads", "guest-csum", "csum"]
> # },
> -# "backend-features": 6337593319,
> # "start-on-kick": false,
> # "isr": 1,
> # "broken": false,
> -# "status": 15,
> +# "status": {
> +# "dev-status": ["acknowledge", "driver", "features-ok", "driver-ok"]
> +# },
> # "num-vqs": 3,
> -# "guest-features": 5111807911,
> -# "host-features": 6337593319,
> +# "guest-features": {
> +# "transport": ["event-idx", "indirect-desc", "version-1"],
> +# "type": "virtio-net",
> +# "features": ["ctrl-mac-addr", "guest-announce", "ctrl-vlan",
> +# "ctrl-rx", "ctrl-vq", "status", "mrg-rxbuf",
> +# "host-ufo", "host-ecn", "host-tso6",
> +# "host-tso4", "guest-ufo", "guest-ecn",
> +# "guest-tso6", "guest-tso4", "mac",
> +# "ctrl-guest-offloads", "guest-csum", "csum"]
> +# },
> +# "host-features": {
> +# "transport": ["protocol-features", "event-idx",
> +# "indirect-desc", "version-1", "any-layout",
> +# "notify-on-empty"],
> +# "type": "virtio-net",
> +# "features": ["gso", "ctrl-mac-addr", "guest-announce",
> +# "ctrl-rx-extra", "ctrl-vlan", "ctrl-rx",
> +# "ctrl-vq", "status", "mrg-rxbuf", "host-ufo",
> +# "host-ecn", "host-tso6", "host-tso4",
> +# "guest-ufo", "guest-ecn", "guest-tso6",
> +# "guest-tso4", "mac", "ctrl-guest-offloads",
> +# "guest-csum", "csum"]
> +# },
> # "use-guest-notifier-mask": true,
> # "vm-running": true,
> # "queue-sel": 2,
Sixteen enums total.
If we replaced them by 'str', the schema would be simpler and the
generated code smaller, but introspection would be less informative. I
didn't check how the handwritten could would be affected.
It's a tradeoff. Can you make an argument either way?
next prev parent reply other threads:[~2021-11-10 13:53 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-10 10:23 [PATCH v9 0/8] hmp,qmp: Add commands to introspect virtio devices Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 1/8] virtio: drop name parameter for virtio_init() Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 2/8] virtio: add vhost support for virtio devices Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 3/8] qmp: add QMP command x-query-virtio Jonah Palmer
2021-11-10 12:03 ` Markus Armbruster
2021-11-11 9:07 ` Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 4/8] qmp: add QMP command x-query-virtio-status Jonah Palmer
2021-11-10 13:08 ` Markus Armbruster
2021-11-11 9:09 ` Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 5/8] qmp: decode feature & status bits in virtio-status Jonah Palmer
2021-11-10 13:49 ` Markus Armbruster [this message]
2021-11-11 10:15 ` Jonah Palmer
2021-11-19 12:32 ` Markus Armbruster
2021-11-10 10:23 ` [PATCH v9 6/8] qmp: add QMP commands for virtio/vhost queue-status Jonah Palmer
2021-11-10 10:23 ` [PATCH v9 7/8] qmp: add QMP command x-query-virtio-queue-element Jonah Palmer
2021-11-10 13:52 ` Markus Armbruster
2021-11-11 10:18 ` Jonah Palmer
2021-11-19 12:33 ` Markus Armbruster
2021-11-10 10:23 ` [PATCH v9 8/8] hmp: add virtio commands Jonah Palmer
2021-11-10 13:30 ` Markus Armbruster
2021-11-11 10:25 ` Jonah Palmer
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=87fss4w275.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=arei.gonglei@huawei.com \
--cc=boris.ostrovsky@oracle.com \
--cc=david@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=eric.auger@redhat.com \
--cc=groug@kaod.org \
--cc=joao.m.martins@oracle.com \
--cc=jonah.palmer@oracle.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=lvivier@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mathieu.poirier@linaro.org \
--cc=michael.roth@amd.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu_oss@crudebyte.com \
--cc=raphael.norwitz@nutanix.com \
--cc=si-wei.liu@oracle.com \
--cc=stefanha@redhat.com \
--cc=thuth@redhat.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.