[dpdk-dev] [PATCH v1 01/14] vhost: add single packet enqueue function
Stephen Hemminger
stephen at networkplumber.org
Mon Sep 23 18:06:21 CEST 2019
This code could be more concise.
> +/*
> + * Returns -1 on fail, 0 on success
> + */
That is standard convention, and probably doesn't need a comment.
> +static inline int
> +vhost_enqueue_single_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
> + struct rte_mbuf *pkt, struct buf_vector *buf_vec, uint16_t *nr_descs)
> +{
> + uint16_t nr_vec = 0;
> +
> + uint16_t avail_idx;
> + uint16_t max_tries, tries = 0;
> +
> + uint16_t buf_id = 0;
> + uint32_t len = 0;
> + uint16_t desc_count;
You don't need extra blank lines in declarations.
> +
> + uint32_t size = pkt->pkt_len + dev->vhost_hlen;
> + avail_idx = vq->last_avail_idx;
> +
> + if (rxvq_is_mergeable(dev))
> + max_tries = vq->size - 1;
> + else
> + max_tries = 1;
> +
> + uint16_t num_buffers = 0;
> +
> + while (size > 0) {
> + /*
> + * if we tried all available ring items, and still
> + * can't get enough buf, it means something abnormal
> + * happened.
> + */
> + if (unlikely(++tries > max_tries))
> + return -1;
> +
> + if (unlikely(fill_vec_buf_packed(dev, vq,
> + avail_idx, &desc_count,
> + buf_vec, &nr_vec,
> + &buf_id, &len,
> + VHOST_ACCESS_RW) < 0)) {
> + return -1;
> + }
Brackets are not necessary on single statement return.
> + len = RTE_MIN(len, size);
> +
> + size -= len;
No need for blank line in between.
> +
> + avail_idx += desc_count;
> + if (avail_idx >= vq->size)
> + avail_idx -= vq->size;
> +
> + *nr_descs += desc_count;
> + num_buffers += 1;
> + }
> +
> + if (copy_mbuf_to_desc(dev, vq, pkt,
> + buf_vec, nr_vec,
> + num_buffers) < 0) {
> + return 0;
> + }
> +
> + return 0;
> +}
> +
> +
More information about the dev
mailing list