We meet a problem with sflow enable. The packet miss upcall to vswitchd has a 1 second lagency. The reason is sflow will get interface stats from kernel use the method of rtnetlink,and the rtnetlink will wait the rtln_lock. also this thread will hold the global mutex of sflow moudle. at this time if ethtool hold the rtln_lock, the sflow get_counters function will wait the ethtool to release the lock. but the ethtool maybe sleep, so the sflow get_counters will wait a long time. and also hold the sflow mutex for a longtime. this cause upcall module block,and the packet of miss upcall has a big lagency.
The flow is: ethtool -> hold rtln_lock -> sleep dpif_sflow_run->hold sflow mutex-> sflow_agent_get_counters->rtnetlink->wait rtln_lock udpif_upcall_handler->dpif_sflow_received->wait sflow mutex So if unlock the sflow mutex before sflow get_counters and relock after get counter will resolve this probelem? -- Regards, Wang Wei _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev