vhost: initializing iotlb memory only when IOMMU feature is enabled DPDK 17.11 introduced the IOMMU feature which caused additional DPDK memory requirement per vhostuser device as part of iotlb_init(). Today this is done unconditionally (from DPDK 17.11 o
Checks
Commit Message
This patch is to do iotlb_init only if IOMMU feature is enabled on device.
Signed-off-by: Nitin Katiyar <nitin.katiyar@ericsson.com>
---
lib/librte_vhost/iotlb.c | 7 +++++++
lib/librte_vhost/vhost_user.c | 7 +++++++
2 files changed, 14 insertions(+)
@@ -310,6 +310,13 @@ struct vhost_iotlb_entry {
struct vhost_virtqueue *vq = dev->virtqueue[vq_index];
int socket = 0;
+ if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM)) {
+ RTE_LOG(ERR, VHOST_CONFIG,
+ "IOMMU feature is not enabled for this dev(%s)\n",
+ dev->ifname);
+ return -1;
+ }
+
if (vq->iotlb_pool) {
/*
* The cache has already been initialized,
@@ -1274,6 +1274,13 @@
uint16_t i;
uint64_t vva, len;
+ if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM)) {
+ RTE_LOG(ERR, VHOST_CONFIG,
+ "IOMMU feature is not enabled for this dev(%s)\n",
+ dev->ifname);
+ return -1;
+ }
+
switch (imsg->type) {
case VHOST_IOTLB_UPDATE:
len = imsg->size;