On Wed, Jan 30, 2019 at 11:30:41AM -0800, Alexei Starovoitov wrote: > 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?
Hurmph, looks like you're right. I got lost in that stuff again. I hate that rwsem code :/ Rewriting that all is on the todo list somewhere, but it's far down :/ > 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. I don't agree with calling is silencing; it fixes an mis-use of the API. But yes, keep the patch as is for now.