Re: [RFC PATCH v4 09/20] vdpa: Save call_fd in vhost-vdpa
From: Jason Wang <hidden>
Date: 2021-10-13 03:44:48
Also in:
qemu-devel
在 2021/10/1 下午3:05, Eugenio Pérez 写道:
quoted hunk
We need to know it to switch to Shadow VirtQueue. 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 48aae59d8e..fddac248b3 100644 --- a/include/hw/virtio/vhost-vdpa.h +++ b/include/hw/virtio/vhost-vdpa.h@@ -30,6 +30,8 @@ typedef struct vhost_vdpa { GPtrArray *shadow_vqs; struct vhost_dev *dev; QLIST_ENTRY(vhost_vdpa) entry; + /* File descriptor the device uses to call VM/SVQ */ + int call_fd[VIRTIO_QUEUE_MAX];
Any reason we don't do this for kick_fd or why virtio_queue_get_guest_notifier() can't work here? Need a comment or commit log. I think we need to have a consistent way to handle both kick and call fd. Thanks
quoted hunk
VhostVDPAHostNotifier notifier[VIRTIO_QUEUE_MAX]; } VhostVDPA;diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 36c954a779..57a857444a 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c@@ -652,7 +652,12 @@ static int vhost_vdpa_set_vring_kick(struct vhost_dev *dev, static int vhost_vdpa_set_vring_call(struct vhost_dev *dev, struct vhost_vring_file *file) { + struct vhost_vdpa *v = dev->opaque; + int vdpa_idx = vhost_vdpa_get_vq_index(dev, file->index); + trace_vhost_vdpa_set_vring_call(dev, file->index, file->fd); + + v->call_fd[vdpa_idx] = file->fd; return vhost_vdpa_call(dev, VHOST_SET_VRING_CALL, file); }
_______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization