On Sat, Oct 20, 2018 at 06:10:52AM +0000, lidejun wrote:
> Has anybody found this issue: when using userspace ovs + dpdk with ipv6 vxlan 
> tunnel, if too many ipv6 route changes in a short time, ovs main thread will 
> stuck at recvmsg?
> Call chain is:
> route_table_run ---> nln_run ---> nl_sock_recv ---> nl_sock_recv__ ---> 
> recvmsg

Haven't heard of that.  It sounds quite strange because the netlink
sockets should all the nonblocking.  Do you know whether the code is
actually blocking in the kernel?  Perhaps it is in a loop, instead,
where there is always a message to receive.

Try this patch, to test that hypothesis:

diff --git a/lib/netlink-notifier.c b/lib/netlink-notifier.c
index dfecb97789f3..c19a537e1413 100644
--- a/lib/netlink-notifier.c
+++ b/lib/netlink-notifier.c
@@ -179,7 +179,7 @@ nln_run(struct nln *nln)
     }
 
     nln->has_run = true;
-    for (;;) {
+    for (int i = 0; i < 50; i++) {
         uint64_t buf_stub[4096 / 8];
         struct ofpbuf buf;
         int error;
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to