Thread (52 messages) 52 messages, 5 authors, 2015-06-17
STALE4025d

[PATCH v5 4/4] lib_vhost: Remove unnecessary vring descriptor length updating

From: Ouyang Changchun <hidden>
Date: 2015-06-03 06:02:40
Subsystem: library code, the rest · Maintainers: Andrew Morton, Linus Torvalds

Remove these unnecessary vring descriptor length updating, vhost should not change them.
virtio in front end should assign value to desc.len for both rx and tx.

Signed-off-by: Changchun Ouyang <redacted>
---
 lib/librte_vhost/vhost_rxtx.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)
diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
index 5c31a88..07bc16c 100644
--- a/lib/librte_vhost/vhost_rxtx.c
+++ b/lib/librte_vhost/vhost_rxtx.c
@@ -137,7 +137,6 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 		 */
 		if ((desc->flags & VRING_DESC_F_NEXT) &&
 			(desc->len == vq->vhost_hlen)) {
-			desc->len = vq->vhost_hlen;
 			desc = &vq->desc[desc->next];
 			/* Buffer address translation. */
 			buff_addr = gpa_to_vva(dev, desc->addr);
@@ -291,7 +290,6 @@ copy_from_mbuf_to_vring(struct virtio_net *dev, uint16_t res_base_idx,
 	if (vb_avail == 0) {
 		uint32_t desc_idx =
 			vq->buf_vec[vec_idx].desc_idx;
-		vq->desc[desc_idx].len = vq->vhost_hlen;
 
 		if ((vq->desc[desc_idx].flags
 			& VRING_DESC_F_NEXT) == 0) {
@@ -375,7 +373,6 @@ copy_from_mbuf_to_vring(struct virtio_net *dev, uint16_t res_base_idx,
 					 */
 					uint32_t desc_idx =
 						vq->buf_vec[vec_idx].desc_idx;
-					vq->desc[desc_idx].len = vb_offset;
 
 					if ((vq->desc[desc_idx].flags &
 						VRING_DESC_F_NEXT) == 0) {
@@ -410,26 +407,13 @@ copy_from_mbuf_to_vring(struct virtio_net *dev, uint16_t res_base_idx,
 				/*
 				 * This whole packet completes.
 				 */
-				uint32_t desc_idx =
-					vq->buf_vec[vec_idx].desc_idx;
-				vq->desc[desc_idx].len = vb_offset;
-
-				while (vq->desc[desc_idx].flags &
-					VRING_DESC_F_NEXT) {
-					desc_idx = vq->desc[desc_idx].next;
-					 vq->desc[desc_idx].len = 0;
-				}
-
 				/* Update used ring with desc information */
 				vq->used->ring[cur_idx & (vq->size - 1)].id
 					= vq->buf_vec[vec_idx].desc_idx;
 				vq->used->ring[cur_idx & (vq->size - 1)].len
 					= entry_len;
-				entry_len = 0;
-				cur_idx++;
 				entry_success++;
-				seg_avail = 0;
-				cpy_len = RTE_MIN(vb_avail, seg_avail);
+				break;
 			}
 		}
 	}
-- 
1.8.4.2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help