[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v4 07/20] vdpa: Register vdpa devices in a list
From: |
Eugenio Pérez |
Subject: |
[RFC PATCH v4 07/20] vdpa: Register vdpa devices in a list |
Date: |
Fri, 1 Oct 2021 09:05:50 +0200 |
This way QMP command can iterate through them and find the devices it
needs to enable shadow virtqueue in.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
include/hw/virtio/vhost-vdpa.h | 2 ++
hw/virtio/vhost-vdpa.c | 5 +++++
2 files changed, 7 insertions(+)
diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h
index 9188226d8b..0d565bb5bd 100644
--- a/include/hw/virtio/vhost-vdpa.h
+++ b/include/hw/virtio/vhost-vdpa.h
@@ -12,6 +12,7 @@
#ifndef HW_VIRTIO_VHOST_VDPA_H
#define HW_VIRTIO_VHOST_VDPA_H
+#include "qemu/queue.h"
#include "hw/virtio/virtio.h"
typedef struct VhostVDPAHostNotifier {
@@ -24,6 +25,7 @@ typedef struct vhost_vdpa {
uint32_t msg_type;
MemoryListener listener;
struct vhost_dev *dev;
+ QLIST_ENTRY(vhost_vdpa) entry;
VhostVDPAHostNotifier notifier[VIRTIO_QUEUE_MAX];
} VhostVDPA;
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index c63e311d7c..e0dc7508c3 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -26,6 +26,9 @@
#include "qapi/qapi-commands-net.h"
#include "qapi/error.h"
+static QLIST_HEAD(, vhost_vdpa) vhost_vdpa_devices =
+ QLIST_HEAD_INITIALIZER(vhost_vdpa_devices);
+
static bool vhost_vdpa_listener_skipped_section(MemoryRegionSection *section)
{
return (!memory_region_is_ram(section->mr) &&
@@ -280,6 +283,7 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void
*opaque, Error **errp)
dev->opaque = opaque ;
v->listener = vhost_vdpa_memory_listener;
v->msg_type = VHOST_IOTLB_MSG_V2;
+ QLIST_INSERT_HEAD(&vhost_vdpa_devices, v, entry);
vhost_vdpa_add_status(dev, VIRTIO_CONFIG_S_ACKNOWLEDGE |
VIRTIO_CONFIG_S_DRIVER);
@@ -377,6 +381,7 @@ static int vhost_vdpa_cleanup(struct vhost_dev *dev)
trace_vhost_vdpa_cleanup(dev, v);
vhost_vdpa_host_notifiers_uninit(dev, dev->nvqs);
memory_listener_unregister(&v->listener);
+ QLIST_REMOVE(v, entry);
dev->opaque = NULL;
return 0;
--
2.27.0
- [RFC PATCH v4 02/20] virtio-net: Honor VIRTIO_CONFIG_S_DEVICE_STOPPED, (continued)
- [RFC PATCH v4 02/20] virtio-net: Honor VIRTIO_CONFIG_S_DEVICE_STOPPED, Eugenio Pérez, 2021/10/01
- [RFC PATCH v4 03/20] virtio: Add virtio_queue_is_host_notifier_enabled, Eugenio Pérez, 2021/10/01
- [RFC PATCH v4 04/20] vhost: Make vhost_virtqueue_{start,stop} public, Eugenio Pérez, 2021/10/01
- [RFC PATCH v4 01/20] virtio: Add VIRTIO_F_QUEUE_STATE, Eugenio Pérez, 2021/10/01
- [RFC PATCH v4 05/20] vhost: Add x-vhost-enable-shadow-vq qmp, Eugenio Pérez, 2021/10/01
[RFC PATCH v4 06/20] vhost: Add VhostShadowVirtqueue, Eugenio Pérez, 2021/10/01
[RFC PATCH v4 07/20] vdpa: Register vdpa devices in a list,
Eugenio Pérez <=
[RFC PATCH v4 08/20] vhost: Route guest->host notification through shadow virtqueue, Eugenio Pérez, 2021/10/01
[RFC PATCH v4 09/20] vdpa: Save call_fd in vhost-vdpa, Eugenio Pérez, 2021/10/01