vhost: fix IOTLB on NUMA realloc
In case of NUMA reallocation, virtqueue's iotlb list is broken, has its head changes but first iotlb entry in the list still points to the previous head pointer. Also, in case of reallocation, we want the IOTLB cache mempool to be on the new socket. This patch perform a full re-init of the IOTLB cache when mempool already exists, and calls the IOTLB cache init function in case the virtqueue is being reallocated on a new socket. Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Jens Freimann <jfreimann@redhat.com>
This commit is contained in:
parent
1aadb2f6b1
commit
b9c07b3141
@ -309,7 +309,6 @@ vhost_user_iotlb_init(struct virtio_net *dev, int vq_index)
|
||||
*/
|
||||
vhost_user_iotlb_cache_remove_all(vq);
|
||||
vhost_user_iotlb_pending_remove_all(vq);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef RTE_LIBRTE_VHOST_NUMA
|
||||
|
@ -314,6 +314,9 @@ numa_realloc(struct virtio_net *dev, int index)
|
||||
dev->virtqueue[index] = vq;
|
||||
vhost_devices[dev->vid] = dev;
|
||||
|
||||
if (old_vq != vq)
|
||||
vhost_user_iotlb_init(dev, index);
|
||||
|
||||
return dev;
|
||||
}
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user