]> git.droids-corp.org - dpdk.git/commitdiff
vhost: prevent zero copy mode if IOMMU is on
authorAdrian Moreno <amorenoz@redhat.com>
Wed, 9 Oct 2019 11:54:32 +0000 (13:54 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 23 Oct 2019 14:43:09 +0000 (16:43 +0200)
The simultaneous use of dequeue_zero_copy and IOMMU is problematic.
Not only because IOVA_VA mode is not supported but also because the
potential invalidation of guest pages while the buffers are in use,
is not handled.

Prevent these two features to be enabled simultaneously.

Fixes: 69c90e98f483 ("vhost: enable IOMMU support")
Cc: stable@dpdk.org
Signed-off-by: Adrian Moreno <amorenoz@redhat.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/librte_vhost/socket.c

index 274988c4d7f0a323a7edf6e703eb66264b75df4b..810049c158b7f829e290bb63871a22020aa6e65b 100644 (file)
@@ -871,6 +871,14 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
        }
        vsocket->dequeue_zero_copy = flags & RTE_VHOST_USER_DEQUEUE_ZERO_COPY;
 
+       if (vsocket->dequeue_zero_copy &&
+           (flags & RTE_VHOST_USER_IOMMU_SUPPORT)) {
+               RTE_LOG(ERR, VHOST_CONFIG,
+                       "error: enabling dequeue zero copy and IOMMU features "
+                       "simultaneously is not supported\n");
+               goto out_mutex;
+       }
+
        /*
         * Set the supported features correctly for the builtin vhost-user
         * net driver.