[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC v2 12/13] vdpa: preemptive kick at enable
From: |
Eugenio Pérez |
Subject: |
[RFC v2 12/13] vdpa: preemptive kick at enable |
Date: |
Thu, 12 Jan 2023 18:24:33 +0100 |
Spuriously kick the destination device's queue so it knows in case there
are new descriptors.
RFC: This is somehow a gray area. The guest may have placed descriptors
in a virtqueue but not kicked it, so it might be surprised if the device
starts processing it.
However, that information is not in the migration stream and it should
be an edge case anyhow, being resilient to parallel notifications from
the guest.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
hw/virtio/vhost-vdpa.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 40b7e8706a..dff94355dd 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -732,11 +732,16 @@ static int vhost_vdpa_set_vring_ready(struct vhost_dev
*dev, int ready)
}
trace_vhost_vdpa_set_vring_ready(dev);
for (i = 0; i < dev->nvqs; ++i) {
+ VirtQueue *vq;
struct vhost_vring_state state = {
.index = dev->vq_index + i,
.num = 1,
};
vhost_vdpa_call(dev, VHOST_VDPA_SET_VRING_ENABLE, &state);
+
+ /* Preemptive kick */
+ vq = virtio_get_queue(dev->vdev, dev->vq_index + i);
+ event_notifier_set(virtio_queue_get_host_notifier(vq));
}
return 0;
}
--
2.31.1
- [RFC v2 10/13] vdpa net: allow VHOST_F_LOG_ALL, (continued)
[RFC v2 12/13] vdpa: preemptive kick at enable,
Eugenio Pérez <=
[RFC v2 13/13] vdpa: Conditionally expose _F_LOG in vhost_net devices, Eugenio Pérez, 2023/01/12