Re: [PATCH net-next] openvswitch: enable ops lock for internal ports

Wang Zhan <[email protected]>
Newsgroups org.kernel.vger.netdev,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
> Why are you sending this patch? Do you have an actual real life need
> for unlocked get_drvinfo??

Yes. The use case is broader than unlocked get_drvinfo.

We are trying to reduce cases where ovs-vswitchd gets blocked waiting for
the global RTNL lock. In production we saw ovs-vswitchd repeatedly report
"Unreasonably long" poll intervals. Tracing showed one OVS operation waiting
about 500 ms for RTNL while node-exporter was collecting the speed of an
mlx5 interface. The node-exporter process was CPU quota throttled, which
stretched that RTNL hold time; mlx5 can make this easier to hit because some
queries go through firmware/mailbox paths.

netdev_linux_set_ol() is one OVS path that can take RTNL. With
userspace-tso-enable, OVS uses this path to read ethtool feature information
through ETHTOOL_GSSET_INFO, ETHTOOL_GSTRINGS and ETHTOOL_GFEATURES. For
ovs-internal-port, these GET operations do not need RTNL, but currently take
it because internal ports do not opt into per-device ops locking.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.