[dpdk-dev] vhost: fix dequeue offload support
Checks
Commit Message
When offload is enabled, vhost needs to access the first mbuf
to get the packet info, e.g. TCP header. So we couldn't delay
the data copy in this case.
Fixes: e5c494a7a22b ("vhost: batch small guest memory copies")
Reported-by: Lei Yao <lei.a.yao@intel.com>
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
---
lib/librte_vhost/virtio_net.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
On Tue, Oct 24, 2017 at 11:12:30AM +0800, Tiwei Bie wrote:
> When offload is enabled, vhost needs to access the first mbuf
> to get the packet info, e.g. TCP header. So we couldn't delay
> the data copy in this case.
>
> Fixes: e5c494a7a22b ("vhost: batch small guest memory copies")
>
> Reported-by: Lei Yao <lei.a.yao@intel.com>
> Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Applied to dpdk-next-virtio.
Thanks.
--yliu
@@ -987,7 +987,8 @@ copy_desc_to_mbuf(struct virtio_net *dev, struct vhost_virtqueue *vq,
mbuf_avail = cpy_len;
} else {
if (likely(cpy_len > MAX_BATCH_LEN ||
- copy_nb >= vq->size)) {
+ copy_nb >= vq->size ||
+ (hdr && cur == m))) {
rte_memcpy(rte_pktmbuf_mtod_offset(cur, void *,
mbuf_offset),
(void *)((uintptr_t)(desc_addr +