[dpdk-dev] [PATCH v7 3/7] vhost: simplify mergeable Rx vring reservation

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Oct 26 00:08:49 CEST 2016


2016-10-14 17:34, Yuanhan Liu:
> -static inline uint32_t __attribute__((always_inline))
> +static inline int __attribute__((always_inline))
>  copy_mbuf_to_desc_mergeable(struct virtio_net *dev, struct vhost_virtqueue *vq,
> -			    uint16_t end_idx, struct rte_mbuf *m,
> -			    struct buf_vector *buf_vec)
> +			    struct rte_mbuf *m, struct buf_vector *buf_vec,
> +			    uint16_t num_buffers)
>  {
>  	struct virtio_net_hdr_mrg_rxbuf virtio_hdr = {{0, 0, 0, 0, 0, 0}, 0};
>  	uint32_t vec_idx = 0;
> -	uint16_t start_idx = vq->last_used_idx;
> -	uint16_t cur_idx = start_idx;
> +	uint16_t cur_idx = vq->last_used_idx;
>  	uint64_t desc_addr;
>  	uint32_t desc_chain_head;
>  	uint32_t desc_chain_len;
> @@ -394,21 +393,21 @@ copy_mbuf_to_desc_mergeable(struct virtio_net *dev, struct vhost_virtqueue *vq,
>  	struct rte_mbuf *hdr_mbuf;
>  
>  	if (unlikely(m == NULL))
> -		return 0;
> +		return -1;
>  
>  	LOG_DEBUG(VHOST_DATA, "(%d) current index %d | end index %d\n",
>  		dev->vid, cur_idx, end_idx);

There is a build error:
	lib/librte_vhost/virtio_net.c:399:22: error: ‘end_idx’ undeclared

It is probably trivial and could be fixed directly in the already applied
commit in next-virtio.


More information about the dev mailing list