Re: Correct usage of dev_base_lock in 2020

Vladimir Oltean
2020-11-30T20:51:59Z

On Mon, Nov 30, 2020 at 09:43:01PM +0100, Eric Dumazet wrote:
> Understood, but really dev_base_lock can only be removed _after_ we
> convert all usages to something else (mutex based, and preferably not
> the global RTNL)

Sure.
A large part of getting rid of dev_base_lock seems to be just:
- deleting the bogus usage from mlx4 infiniband and friends
- converting procfs, sysfs and friends to netdev_lists_mutex
- renaming whatever is left into something related to the RFC 2863
operstate.

> Focusing on dev_base_lock seems a distraction really.

Maybe.
But it's going to be awkward to explain in words what the locking rules
are, when the read side can take optionally the dev_base_lock, RCU, or
netdev_lists_lock, and the write side can take optionally the dev_base_lock,
RTNL, or netdev_lists_lock. Not to mention that anybody grepping for
dev_base_lock will see the current usage and not make a lot out of it.

I'm not really sure how to order this rework to be honest.