vhost: fix missing copy length in batched copies

Message ID 20220712100447.104162-1-maxime.coquelin@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Maxime Coquelin
Headers
Series vhost: fix missing copy length in batched copies |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing fail Testing issues

Commit Message

Maxime Coquelin July 12, 2022, 10:04 a.m. UTC
  This patch fixes missing the assignement of the copy length
when doing batched copies in the sync dequeue path.

Fixes: cd79d1b030bd ("vhost: fix unnecessary dirty page logging")

Suggested-by: Chenbo Xia <chenbo.xia@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/vhost/virtio_net.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Maxime Coquelin July 12, 2022, 10:09 a.m. UTC | #1
On 7/12/22 12:04, Maxime Coquelin wrote:
> This patch fixes missing the assignement of the copy length
s/assignement/assignment/

If this is the only change requested, could it be fixed while applying,
or should I send a v2?

Thanks,
Maxime

> when doing batched copies in the sync dequeue path.
> 
> Fixes: cd79d1b030bd ("vhost: fix unnecessary dirty page logging")
> 
> Suggested-by: Chenbo Xia <chenbo.xia@intel.com>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
>   lib/vhost/virtio_net.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
> index 12b7fbe7f9..35fa4670fd 100644
> --- a/lib/vhost/virtio_net.c
> +++ b/lib/vhost/virtio_net.c
> @@ -1127,13 +1127,13 @@ sync_fill_seg(struct virtio_net *dev, struct vhost_virtqueue *vq,
>   			batch_copy[vq->batch_copy_nb_elems].src =
>   				rte_pktmbuf_mtod_offset(m, void *, mbuf_offset);
>   			batch_copy[vq->batch_copy_nb_elems].log_addr = buf_iova;
> -			batch_copy[vq->batch_copy_nb_elems].len = cpy_len;
>   		} else {
>   			batch_copy[vq->batch_copy_nb_elems].dst =
>   				rte_pktmbuf_mtod_offset(m, void *, mbuf_offset);
>   			batch_copy[vq->batch_copy_nb_elems].src =
>   				(void *)((uintptr_t)(buf_addr));
>   		}
> +		batch_copy[vq->batch_copy_nb_elems].len = cpy_len;
>   		vq->batch_copy_nb_elems++;
>   	}
>   }
  
Chenbo Xia July 12, 2022, 10:15 a.m. UTC | #2
> -----Original Message-----
> From: Maxime Coquelin <maxime.coquelin@redhat.com>
> Sent: Tuesday, July 12, 2022 6:10 PM
> To: dev@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>; Jiang, YuX
> <yux.jiang@intel.com>; thomas@monjalon.net; david.marchand@redhat.com
> Subject: Re: [PATCH] vhost: fix missing copy length in batched copies
> 
> 
> 
> On 7/12/22 12:04, Maxime Coquelin wrote:
> > This patch fixes missing the assignement of the copy length
> s/assignement/assignment/
> 
> If this is the only change requested, could it be fixed while applying,
> or should I send a v2?
> 
> Thanks,
> Maxime
> 
> > when doing batched copies in the sync dequeue path.
> >
> > Fixes: cd79d1b030bd ("vhost: fix unnecessary dirty page logging")
> >
> > Suggested-by: Chenbo Xia <chenbo.xia@intel.com>
> > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> > ---
> >   lib/vhost/virtio_net.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)

With the typo fixed:

Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>

> >
> > diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
> > index 12b7fbe7f9..35fa4670fd 100644
> > --- a/lib/vhost/virtio_net.c
> > +++ b/lib/vhost/virtio_net.c
> > @@ -1127,13 +1127,13 @@ sync_fill_seg(struct virtio_net *dev, struct
> vhost_virtqueue *vq,
> >   			batch_copy[vq->batch_copy_nb_elems].src =
> >   				rte_pktmbuf_mtod_offset(m, void *, mbuf_offset);
> >   			batch_copy[vq->batch_copy_nb_elems].log_addr = buf_iova;
> > -			batch_copy[vq->batch_copy_nb_elems].len = cpy_len;
> >   		} else {
> >   			batch_copy[vq->batch_copy_nb_elems].dst =
> >   				rte_pktmbuf_mtod_offset(m, void *, mbuf_offset);
> >   			batch_copy[vq->batch_copy_nb_elems].src =
> >   				(void *)((uintptr_t)(buf_addr));
> >   		}
> > +		batch_copy[vq->batch_copy_nb_elems].len = cpy_len;
> >   		vq->batch_copy_nb_elems++;
> >   	}
> >   }
  
Ling, WeiX July 13, 2022, 8:33 a.m. UTC | #3
> -----Original Message-----
> From: Maxime Coquelin <maxime.coquelin@redhat.com>
> Sent: Tuesday, July 12, 2022 6:05 PM
> To: dev@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>; Jiang, YuX
> <yux.jiang@intel.com>; thomas@monjalon.net;
> david.marchand@redhat.com
> Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
> Subject: [PATCH] vhost: fix missing copy length in batched copies
> 
> This patch fixes missing the assignement of the copy length when doing
> batched copies in the sync dequeue path.
> 
> Fixes: cd79d1b030bd ("vhost: fix unnecessary dirty page logging")
> 
> Suggested-by: Chenbo Xia <chenbo.xia@intel.com>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---

Hi Maxime, 

regression test with this patch yesterday, it does not effect the other test cases.

Tested-by: Wei Ling <weix.ling@intel.com>
  
Thomas Monjalon July 14, 2022, 1:32 p.m. UTC | #4
> > This patch fixes missing the assignement of the copy length when doing
> > batched copies in the sync dequeue path.
> > 
> > Fixes: cd79d1b030bd ("vhost: fix unnecessary dirty page logging")
> > 
> > Suggested-by: Chenbo Xia <chenbo.xia@intel.com>
> > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> > ---
> 
> Hi Maxime, 
> 
> regression test with this patch yesterday, it does not effect the other test cases.
> 
> Tested-by: Wei Ling <weix.ling@intel.com>

Applied, thanks.
  

Patch

diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
index 12b7fbe7f9..35fa4670fd 100644
--- a/lib/vhost/virtio_net.c
+++ b/lib/vhost/virtio_net.c
@@ -1127,13 +1127,13 @@  sync_fill_seg(struct virtio_net *dev, struct vhost_virtqueue *vq,
 			batch_copy[vq->batch_copy_nb_elems].src =
 				rte_pktmbuf_mtod_offset(m, void *, mbuf_offset);
 			batch_copy[vq->batch_copy_nb_elems].log_addr = buf_iova;
-			batch_copy[vq->batch_copy_nb_elems].len = cpy_len;
 		} else {
 			batch_copy[vq->batch_copy_nb_elems].dst =
 				rte_pktmbuf_mtod_offset(m, void *, mbuf_offset);
 			batch_copy[vq->batch_copy_nb_elems].src =
 				(void *)((uintptr_t)(buf_addr));
 		}
+		batch_copy[vq->batch_copy_nb_elems].len = cpy_len;
 		vq->batch_copy_nb_elems++;
 	}
 }