On Thu, 19 Oct 2017, Bart Van Assche wrote: > On Thu, 2017-10-19 at 13:33 -0700, Matthew Wilcox wrote: > > For example, the page lock is not annotatable with lockdep -- we return > > to userspace with it held, for heaven's sake! So it is quite easy for > > someone not familiar with the MM locking hierarchy to inadvertently > > introduce an ABBA deadlock against the page lock. (ie me. I did that.) > > Right now, that has to be caught by a human reviewer; if cross-release > > checking can catch that, then it's worth having. > > Hello Matthew, > > Although I agree that enabling lock inversion checking for page locks is > useful, I think my questions still apply to other locking objects than page > locks.
Why are other objects any different? lock(L) -> wait_for_completion(A) lock(L) -> complete(A) is a simple ABBA and they exist and have not been caught for a long time until they choked a production machine. Thanks, tglx