On Wed, Oct 13, 2021 at 5:43 AM Jason Wang <jasow...@redhat.com> wrote: > > > 在 2021/10/1 下午3:05, Eugenio Pérez 写道: > > We need to know it to switch to Shadow VirtQueue. > > > > Signed-off-by: Eugenio Pérez <epere...@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 >
The reasons for it have been given in answers to patch 08/20, since both have converged to it somehow. Please let me know if you think otherwise and this needs to be continued here. Thanks! > > > 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); > > } > > >