Re: [PATCH V2 3/8] vhost_net: get rid of vhost_net_flush_vq() and extra flush calls

2022-05-17 Thread Stefano Garzarella

On Sun, May 15, 2022 at 03:29:17PM -0500, Mike Christie wrote:

From: Andrey Ryabinin 

vhost_net_flush_vq() calls vhost_work_dev_flush() twice passing
vhost_dev pointer obtained via 'n->poll[index].dev' and
'n->vqs[index].vq.poll.dev'. This is actually the same pointer,
initialized in vhost_net_open()/vhost_dev_init()/vhost_poll_init()

Remove vhost_net_flush_vq() and call vhost_work_dev_flush() directly.
Do the flushes only once instead of several flush calls in a row
which seems rather useless.

Signed-off-by: Andrey Ryabinin 
[drop vhost_dev forward declaration in vhost.h]
Signed-off-by: Mike Christie 
---
drivers/vhost/net.c | 11 ++-
1 file changed, 2 insertions(+), 9 deletions(-)


Reviewed-by: Stefano Garzarella 

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization


Re: [PATCH V2 3/8] vhost_net: get rid of vhost_net_flush_vq() and extra flush calls

2022-05-16 Thread Jason Wang


在 2022/5/16 04:29, Mike Christie 写道:

From: Andrey Ryabinin 

vhost_net_flush_vq() calls vhost_work_dev_flush() twice passing
vhost_dev pointer obtained via 'n->poll[index].dev' and
'n->vqs[index].vq.poll.dev'. This is actually the same pointer,
initialized in vhost_net_open()/vhost_dev_init()/vhost_poll_init()

Remove vhost_net_flush_vq() and call vhost_work_dev_flush() directly.
Do the flushes only once instead of several flush calls in a row
which seems rather useless.

Signed-off-by: Andrey Ryabinin 
[drop vhost_dev forward declaration in vhost.h]
Signed-off-by: Mike Christie 



Acked-by: Jason Wang 



---
  drivers/vhost/net.c | 11 ++-
  1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index 4e55ad8c942a..047b7b05109a 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -1374,16 +1374,9 @@ static void vhost_net_stop(struct vhost_net *n, struct 
socket **tx_sock,
*rx_sock = vhost_net_stop_vq(n, >vqs[VHOST_NET_VQ_RX].vq);
  }
  
-static void vhost_net_flush_vq(struct vhost_net *n, int index)

-{
-   vhost_work_dev_flush(n->poll[index].dev);
-   vhost_work_dev_flush(n->vqs[index].vq.poll.dev);
-}
-
  static void vhost_net_flush(struct vhost_net *n)
  {
-   vhost_net_flush_vq(n, VHOST_NET_VQ_TX);
-   vhost_net_flush_vq(n, VHOST_NET_VQ_RX);
+   vhost_work_dev_flush(>dev);
if (n->vqs[VHOST_NET_VQ_TX].ubufs) {
mutex_lock(>vqs[VHOST_NET_VQ_TX].vq.mutex);
n->tx_flush = true;
@@ -1573,7 +1566,7 @@ static long vhost_net_set_backend(struct vhost_net *n, 
unsigned index, int fd)
}
  
  	if (oldsock) {

-   vhost_net_flush_vq(n, index);
+   vhost_work_dev_flush(>dev);
sockfd_put(oldsock);
}
  


___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

[PATCH V2 3/8] vhost_net: get rid of vhost_net_flush_vq() and extra flush calls

2022-05-15 Thread Mike Christie
From: Andrey Ryabinin 

vhost_net_flush_vq() calls vhost_work_dev_flush() twice passing
vhost_dev pointer obtained via 'n->poll[index].dev' and
'n->vqs[index].vq.poll.dev'. This is actually the same pointer,
initialized in vhost_net_open()/vhost_dev_init()/vhost_poll_init()

Remove vhost_net_flush_vq() and call vhost_work_dev_flush() directly.
Do the flushes only once instead of several flush calls in a row
which seems rather useless.

Signed-off-by: Andrey Ryabinin 
[drop vhost_dev forward declaration in vhost.h]
Signed-off-by: Mike Christie 
---
 drivers/vhost/net.c | 11 ++-
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index 4e55ad8c942a..047b7b05109a 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -1374,16 +1374,9 @@ static void vhost_net_stop(struct vhost_net *n, struct 
socket **tx_sock,
*rx_sock = vhost_net_stop_vq(n, >vqs[VHOST_NET_VQ_RX].vq);
 }
 
-static void vhost_net_flush_vq(struct vhost_net *n, int index)
-{
-   vhost_work_dev_flush(n->poll[index].dev);
-   vhost_work_dev_flush(n->vqs[index].vq.poll.dev);
-}
-
 static void vhost_net_flush(struct vhost_net *n)
 {
-   vhost_net_flush_vq(n, VHOST_NET_VQ_TX);
-   vhost_net_flush_vq(n, VHOST_NET_VQ_RX);
+   vhost_work_dev_flush(>dev);
if (n->vqs[VHOST_NET_VQ_TX].ubufs) {
mutex_lock(>vqs[VHOST_NET_VQ_TX].vq.mutex);
n->tx_flush = true;
@@ -1573,7 +1566,7 @@ static long vhost_net_set_backend(struct vhost_net *n, 
unsigned index, int fd)
}
 
if (oldsock) {
-   vhost_net_flush_vq(n, index);
+   vhost_work_dev_flush(>dev);
sockfd_put(oldsock);
}
 
-- 
2.25.1

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization