vdpa: set backend capabilities at vhost_vdpa_init
The backend does not reset them until the vdpa file descriptor is closed so there is no harm in doing it only once. This allows the destination of a live migration to premap memory in batches, using VHOST_BACKEND_F_IOTLB_BATCH. Tested-by: Lei Yang <leiyang@redhat.com> Reviewed-by: Si-Wei Liu <si-wei.liu@oracle.com> Acked-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Jonah Palmer <jonah.palmer@oracle.com> Message-Id: <20250522145839.59974-4-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
3312e6c8c9
commit
32f0c7ce4c
1 changed files with 6 additions and 1 deletions
|
|
@ -634,6 +634,12 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque, Error **errp)
|
|||
v->dev = dev;
|
||||
dev->opaque = opaque ;
|
||||
v->shared->listener = vhost_vdpa_memory_listener;
|
||||
|
||||
ret = vhost_vdpa_set_backend_cap(dev);
|
||||
if (unlikely(ret != 0)) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
vhost_vdpa_init_svq(dev, v);
|
||||
|
||||
error_propagate(&dev->migration_blocker, v->migration_blocker);
|
||||
|
|
@ -1563,7 +1569,6 @@ const VhostOps vdpa_ops = {
|
|||
.vhost_set_vring_kick = vhost_vdpa_set_vring_kick,
|
||||
.vhost_set_vring_call = vhost_vdpa_set_vring_call,
|
||||
.vhost_get_features = vhost_vdpa_get_features,
|
||||
.vhost_set_backend_cap = vhost_vdpa_set_backend_cap,
|
||||
.vhost_set_owner = vhost_vdpa_set_owner,
|
||||
.vhost_set_vring_endian = NULL,
|
||||
.vhost_backend_memslots_limit = vhost_vdpa_memslots_limit,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue