netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4] virtio_net: suppress cpu stall when free_unused_bufs
@ 2023-05-04  2:27 Wenliang Wang
  2023-05-04  7:06 ` Michael S. Tsirkin
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Wenliang Wang @ 2023-05-04  2:27 UTC (permalink / raw)
  To: mst, jasowang, davem, edumazet, kuba, pabeni, zhengqi.arch,
	willemdebruijn.kernel
  Cc: virtualization, netdev, linux-kernel, xuanzhuo, Wenliang Wang

For multi-queue and large ring-size use case, the following error
occurred when free_unused_bufs:
rcu: INFO: rcu_sched self-detected stall on CPU.

Fixes: 986a4f4d452d ("virtio_net: multiqueue support")
Signed-off-by: Wenliang Wang <wangwenliang.1995@bytedance.com>
---
v2:
-add need_resched check.
-apply same logic to sq.
v3:
-use cond_resched instead.
v4:
-add fixes tag
---
 drivers/net/virtio_net.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 8d8038538fc4..a12ae26db0e2 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -3560,12 +3560,14 @@ static void free_unused_bufs(struct virtnet_info *vi)
 		struct virtqueue *vq = vi->sq[i].vq;
 		while ((buf = virtqueue_detach_unused_buf(vq)) != NULL)
 			virtnet_sq_free_unused_buf(vq, buf);
+		cond_resched();
 	}
 
 	for (i = 0; i < vi->max_queue_pairs; i++) {
 		struct virtqueue *vq = vi->rq[i].vq;
 		while ((buf = virtqueue_detach_unused_buf(vq)) != NULL)
 			virtnet_rq_free_unused_buf(vq, buf);
+		cond_resched();
 	}
 }
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-05-09  3:14 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-04  2:27 [PATCH v4] virtio_net: suppress cpu stall when free_unused_bufs Wenliang Wang
2023-05-04  7:06 ` Michael S. Tsirkin
2023-05-05  3:28 ` Jason Wang
2023-05-06  2:04   ` Xuan Zhuo
2023-05-07 13:34   ` Michael S. Tsirkin
2023-05-08  3:12     ` Jason Wang
2023-05-08  6:07       ` Michael S. Tsirkin
2023-05-08  6:13         ` Jason Wang
2023-05-08  6:47           ` Michael S. Tsirkin
2023-05-09  3:14             ` Jason Wang
2023-05-05  8:40 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).