Message ID | 20230803145500.2108691-1-jonah.palmer@oracle.com (mailing list archive) |
---|---|
Headers | show |
Series | qmp, vhost-user: Remove virtio_list & update virtio introspection | expand |
On Thu, Aug 03, 2023 at 10:54:57AM -0400, Jonah Palmer wrote: > These patches update a few things related to virtio introspection via. > QMP/HMP commands. > > 1. Remove 'virtio_list' and instead query the QOM composition tree to > find any active & realized virtio devices. > > The 'virtio_list' was duplicating information about virtio devices that > was already available in the QOM composition tree, so there was no need > to keep this list. > > 2. Add new transport, protocol, and device features as well as support > to introspect vhost-user-gpio devices. > > Vhost-user-gpio previously had no support for introspection. Support for > introspecting its vhost-user device is now available in these patches. > > 3. Move VhostUserProtocolFeature definition to its corresponding header > file (vhost-user.h). Cleanup previous definitions in other files. > > VhostUserProtocolFeature was being defined in 3 separate files. Instead > of 3 separate definitions, use one instead and add it to the > vhost-user.h header file. > > New virtio transport feature: > ----------------------------- > - VIRTIO_F_RING_RESET > > New vhost-user protocol feature: > -------------------------------- > - VHOST_USER_PROTOCOL_F_STATUS > > New virtio device features: > --------------------------- > virtio-blk: > - VIRTIO_BLK_F_SECURE_ERASE > > virtio-net: > - VIRTIO_NET_F_NOTF_COAL > - VIRTIO_NET_F_GUEST_USO4 > - VIRTIO_NET_F_GUEST_USO6 > - VIRTIO_NET_F_HOST_USO > > virtio/vhost-user-gpio: > - VIRTIO_GPIO_F_IRQ > - VHOST_F_LOG_ALL > - VHOST_USER_F_PROTOCOL_FEATURES VHOST_F_LOG_ALL likely does not make sense. > v3: use recursion and type casting to find realized virtio devices > remove virtio scmi & bluetooth feature mappings > revert virtio scmi & bluetooth case changes in qmp_decode_features > change config define for VIRTIO_GPIO to CONFIG_VHOST_USER_GPIO > move VhostUserProtocolFeature definition to header file > > v2: verify virtio devices via. 'TYPE_VIRTIO_DEVICES' > verify path is a virtio device before checking if it's realized > remove 'VIRTIO_BLK_F_ZONED' update (already exists) > add cover letter > > Jonah Palmer (3): > qmp: remove virtio_list, search QOM tree instead > qmp: update virtio feature maps, vhost-user-gpio introspection > vhost-user: move VhostUserProtocolFeature definition to header file > > hw/scsi/vhost-user-scsi.c | 4 - > hw/virtio/vhost-user-gpio.c | 7 ++ > hw/virtio/vhost-user.c | 21 ----- > hw/virtio/virtio-qmp.c | 154 ++++++++++++++++----------------- > hw/virtio/virtio-qmp.h | 7 -- > hw/virtio/virtio.c | 6 -- > include/hw/virtio/vhost-user.h | 21 +++++ > 7 files changed, 105 insertions(+), 115 deletions(-) > > -- > 2.39.3
On 8/3/23 15:50, Michael S. Tsirkin wrote: > On Thu, Aug 03, 2023 at 10:54:57AM -0400, Jonah Palmer wrote: >> These patches update a few things related to virtio introspection via. >> QMP/HMP commands. >> >> 1. Remove 'virtio_list' and instead query the QOM composition tree to >> find any active & realized virtio devices. >> >> The 'virtio_list' was duplicating information about virtio devices that >> was already available in the QOM composition tree, so there was no need >> to keep this list. >> >> 2. Add new transport, protocol, and device features as well as support >> to introspect vhost-user-gpio devices. >> >> Vhost-user-gpio previously had no support for introspection. Support for >> introspecting its vhost-user device is now available in these patches. >> >> 3. Move VhostUserProtocolFeature definition to its corresponding header >> file (vhost-user.h). Cleanup previous definitions in other files. >> >> VhostUserProtocolFeature was being defined in 3 separate files. Instead >> of 3 separate definitions, use one instead and add it to the >> vhost-user.h header file. >> >> New virtio transport feature: >> ----------------------------- >> - VIRTIO_F_RING_RESET >> >> New vhost-user protocol feature: >> -------------------------------- >> - VHOST_USER_PROTOCOL_F_STATUS >> >> New virtio device features: >> --------------------------- >> virtio-blk: >> - VIRTIO_BLK_F_SECURE_ERASE >> >> virtio-net: >> - VIRTIO_NET_F_NOTF_COAL >> - VIRTIO_NET_F_GUEST_USO4 >> - VIRTIO_NET_F_GUEST_USO6 >> - VIRTIO_NET_F_HOST_USO >> >> virtio/vhost-user-gpio: >> - VIRTIO_GPIO_F_IRQ >> - VHOST_F_LOG_ALL >> - VHOST_USER_F_PROTOCOL_FEATURES > VHOST_F_LOG_ALL likely does not make sense. > Ah, okay. I can remove this in v4. I'm not very familiar with virtio/vhost-user-gpio other than that it's a virtual general-purpose I/O controller that maps native GPIOs to a VM, allowing the VM to perform GPIO operations via. it. I wasn't sure if the vhost-user version of it would make use of this feature. >> v3: use recursion and type casting to find realized virtio devices >> remove virtio scmi & bluetooth feature mappings >> revert virtio scmi & bluetooth case changes in qmp_decode_features >> change config define for VIRTIO_GPIO to CONFIG_VHOST_USER_GPIO >> move VhostUserProtocolFeature definition to header file >> >> v2: verify virtio devices via. 'TYPE_VIRTIO_DEVICES' >> verify path is a virtio device before checking if it's realized >> remove 'VIRTIO_BLK_F_ZONED' update (already exists) >> add cover letter >> >> Jonah Palmer (3): >> qmp: remove virtio_list, search QOM tree instead >> qmp: update virtio feature maps, vhost-user-gpio introspection >> vhost-user: move VhostUserProtocolFeature definition to header file >> >> hw/scsi/vhost-user-scsi.c | 4 - >> hw/virtio/vhost-user-gpio.c | 7 ++ >> hw/virtio/vhost-user.c | 21 ----- >> hw/virtio/virtio-qmp.c | 154 ++++++++++++++++----------------- >> hw/virtio/virtio-qmp.h | 7 -- >> hw/virtio/virtio.c | 6 -- >> include/hw/virtio/vhost-user.h | 21 +++++ >> 7 files changed, 105 insertions(+), 115 deletions(-) >> >> -- >> 2.39.3