Hi, all
I found this issue when I use ovs 2.6.1 and dpdk 16.07, the error is located in
the line "ovs_mutex_lock(&dev->mutex);" in get_stats() in lib/netdev-vport.c,
it looks like a deadlock is detected, so resulted in ovs-vswitchd coredump,
anybody noticed this issue? How can we fix it? this has bothered me two days.
static int
get_stats(const struct netdev *netdev, struct netdev_stats *stats)
{
struct netdev_vport *dev = netdev_vport_cast(netdev);
ovs_mutex_lock(&dev->mutex);
/* Passing only collected counters */
stats->tx_packets = dev->stats.tx_packets;
stats->tx_bytes = dev->stats.tx_bytes;
stats->rx_packets = dev->stats.rx_packets;
stats->rx_bytes = dev->stats.rx_bytes;
ovs_mutex_unlock(&dev->mutex);
return 0;
}
If I commented out lock and unlock, I'll get the ovs log:
ovs_rcu(urcu3)|WARN|blocked 32000 ms waiting for revalidator8 to quiesce
ovs-ofctl will also hang.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev