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

Reply via email to