Skip to contentSkip to conversation

vhost: remove fallback in async enqueue API

PATCH Applied Patrick Fu 2 participants 3 messages Oct 21, 2020 – Oct 23, 2020

lore
Share & tools
lore

Patrick Fu

author
#0 lore raw

PATCH 1/1 vhost: remove fallback in async enqueue API

By design, async enqueue API should return directly if async device is not registered. This patch removes the corrupted implementation of the enqueue fallback from async mode to sync mode.

Fixes cd6760da1076 ("vhost: introduce async enqueue for split ring")
---
 lib/librte_vhost/virtio_net.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
lib/librte_vhost/virtio_net.c +1 -10
index 3a019b744..030795645 100644
@@ -1714,7 +1714,6 @@ virtio_dev_rx_async_submit(struct virtio_net *dev, uint16_t queue_id,
 {
 	struct vhost_virtqueue *vq;
 	uint32_t nb_tx = 0;
-	bool drawback = false;
 
 	VHOST_LOG_DATA(DEBUG, "(%d) %s\n", dev->vid, __func__);
 	if (unlikely(!is_valid_virt_queue_idx(queue_id, 0, dev->nr_vring))) {
@@ -1727,13 +1726,8 @@ virtio_dev_rx_async_submit(struct virtio_net *dev, uint16_t queue_id,
 
 	rte_spinlock_lock(&vq->access_lock);
 
-	if (unlikely(vq->enabled == 0))
-		goto out_access_unlock;
-
-	if (unlikely(!vq->async_registered)) {
-		drawback = true;
+	if (unlikely(vq->enabled == 0 || !vq->async_registered))
 		goto out_access_unlock;
-	}
 
 	if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))
 		vhost_user_iotlb_rd_lock(vq);
@@ -1760,9 +1754,6 @@ virtio_dev_rx_async_submit(struct virtio_net *dev, uint16_t queue_id,
 out_access_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	if (drawback)
-		return rte_vhost_enqueue_burst(dev->vid, queue_id, pkts, count);
-
 	return nb_tx;
 }
 
Signature · 1 line
2.18.4
Reviewed-by on v1 1/1
#1 lore raw
Quoted 11 lines · Patrick Fu

By design, async enqueue API should return directly if async device is not registered. This patch removes the corrupted implementation of the enqueue fallback from async mode to sync mode.

Fixes cd6760da1076 ("vhost: introduce async enqueue for split ring")
---
 lib/librte_vhost/virtio_net.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

Thanks,
Maxime

#2 lore raw
In reply to Patrick Fu
Quoted 10 lines · Patrick Fu

By design, async enqueue API should return directly if async device is not registered. This patch removes the corrupted implementation of the enqueue fallback from async mode to sync mode.

Fixes cd6760da1076 ("vhost: introduce async enqueue for split ring")
---
 lib/librte_vhost/virtio_net.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

Applied to dpdk-next-virtio/main.

Thanks,
Maxime