On Wed, Jan 30, 2019 at 11:15:30AM +0100, Peter Zijlstra wrote: > On Tue, Jan 29, 2019 at 08:04:56PM -0800, Alexei Starovoitov wrote: > > Lockdep warns about false positive: > > This is not a false positive, and you probably also need to use > down_read_non_owner() to match this up_read_non_owner(). > > {up,down}_read() and {up,down}_read_non_owner() are not only different > in the lockdep annotation; there is also optimistic spin stuff that > relies on 'owner' tracking.
Can you point out in the code the spin bit? As far as I can see sem->owner is debug only feature. All owner checks are done under CONFIG_DEBUG_RWSEMS. Also there is no down_read_trylock_non_owner() at the moment. We can argue about it for -next, but I'd rather silence lockdep with this patch today.