[dpdk-dev] [PATCH v5 4/4] lib_vhost: Remove unnecessary vring descriptor length updating
Ouyang Changchun
changchun.ouyang at intel.com
Wed Jun 3 08:02:21 CEST 2015
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 <changchun.ouyang at intel.com>
---
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
More information about the dev
mailing list