vhost: fix IOTLB mempool single-consumer flag
authorEugenio Pérez <eperezma@redhat.com>
Mon, 31 Aug 2020 07:59:22 +0000 (09:59 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 18 Sep 2020 16:55:12 +0000 (18:55 +0200)
Control thread (which handles iotlb msg) and forwarding thread
both use iotlb to translate address. The former may modify the
same entry of mempool and may cause a loop in iotlb_pending_entries
list.

Bugzilla ID: 523
Fixes: d012d1f293f4 ("vhost: add IOTLB helper functions")
Cc: stable@dpdk.org
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/librte_vhost/iotlb.c

index 5b3a0c0..e0b6772 100644 (file)
@@ -321,8 +321,7 @@ vhost_user_iotlb_init(struct virtio_net *dev, int vq_index)
                        IOTLB_CACHE_SIZE, sizeof(struct vhost_iotlb_entry), 0,
                        0, 0, NULL, NULL, NULL, socket,
                        MEMPOOL_F_NO_CACHE_ALIGN |
-                       MEMPOOL_F_SP_PUT |
-                       MEMPOOL_F_SC_GET);
+                       MEMPOOL_F_SP_PUT);
        if (!vq->iotlb_pool) {
                VHOST_LOG_CONFIG(ERR,
                                "Failed to create IOTLB cache pool (%s)\n",