[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v9 02/12] vhost: set SVQ device call handler at SVQ start
From: |
Eugenio Pérez |
Subject: |
[PATCH v9 02/12] vhost: set SVQ device call handler at SVQ start |
Date: |
Thu, 15 Dec 2022 12:31:34 +0100 |
By the end of this series CVQ is shadowed as long as the features
support it.
Since we don't know at the beginning of qemu running if this is
supported, move the event notifier handler setting to the start of the
SVQ, instead of the start of qemu run. This will avoid to create them if
the device does not support SVQ.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
---
hw/virtio/vhost-shadow-virtqueue.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/virtio/vhost-shadow-virtqueue.c
b/hw/virtio/vhost-shadow-virtqueue.c
index 5bd14cad96..264ddc166d 100644
--- a/hw/virtio/vhost-shadow-virtqueue.c
+++ b/hw/virtio/vhost-shadow-virtqueue.c
@@ -648,6 +648,7 @@ void vhost_svq_start(VhostShadowVirtqueue *svq,
VirtIODevice *vdev,
{
size_t desc_size, driver_size, device_size;
+ event_notifier_set_handler(&svq->hdev_call, vhost_svq_handle_call);
svq->next_guest_avail_elem = NULL;
svq->shadow_avail_idx = 0;
svq->shadow_used_idx = 0;
@@ -704,6 +705,7 @@ void vhost_svq_stop(VhostShadowVirtqueue *svq)
g_free(svq->desc_state);
qemu_vfree(svq->vring.desc);
qemu_vfree(svq->vring.used);
+ event_notifier_set_handler(&svq->hdev_call, NULL);
}
/**
@@ -740,7 +742,6 @@ VhostShadowVirtqueue *vhost_svq_new(VhostIOVATree
*iova_tree,
}
event_notifier_init_fd(&svq->svq_kick, VHOST_FILE_UNBIND);
- event_notifier_set_handler(&svq->hdev_call, vhost_svq_handle_call);
svq->iova_tree = iova_tree;
svq->ops = ops;
svq->ops_opaque = ops_opaque;
@@ -763,7 +764,6 @@ void vhost_svq_free(gpointer pvq)
VhostShadowVirtqueue *vq = pvq;
vhost_svq_stop(vq);
event_notifier_cleanup(&vq->hdev_kick);
- event_notifier_set_handler(&vq->hdev_call, NULL);
event_notifier_cleanup(&vq->hdev_call);
g_free(vq);
}
--
2.31.1
- [PATCH v9 00/12] ASID support in vhost-vdpa net, Eugenio Pérez, 2022/12/15
- [PATCH v9 01/12] vdpa: use v->shadow_vqs_enabled in vhost_vdpa_svqs_start & stop, Eugenio Pérez, 2022/12/15
- [PATCH v9 02/12] vhost: set SVQ device call handler at SVQ start,
Eugenio Pérez <=
- [PATCH v9 05/12] vdpa: add vhost_vdpa_net_valid_svq_features, Eugenio Pérez, 2022/12/15
- [PATCH v9 04/12] vhost: move iova_tree set to vhost_svq_start, Eugenio Pérez, 2022/12/15
- [PATCH v9 03/12] vhost: allocate SVQ device file descriptors at device start, Eugenio Pérez, 2022/12/15
- [PATCH v9 06/12] vdpa: request iova_range only once, Eugenio Pérez, 2022/12/15
[PATCH v9 07/12] vdpa: move SVQ vring features check to net/, Eugenio Pérez, 2022/12/15
[PATCH v9 08/12] vdpa: allocate SVQ array unconditionally, Eugenio Pérez, 2022/12/15