2016-11-15 6:34 GMT-08:00 Yang, Yi Y <[email protected]>: > 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; > } >
Thanks for reporting this Could you share more details about the setup, so maybe I can try to reproduce this? Could you also post a backtrace for every thread from the core file? Thanks, Daniele > > 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 > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
