Re: Lockdep is less useful than it was
From: Dave Chinner
Date: Fri Dec 08 2017 - 17:49:18 EST
On Fri, Dec 08, 2017 at 10:14:38AM -0800, Matthew Wilcox wrote:
> At the moment, the radix tree actively disables the RCU checking that
> enabling lockdep would give us. It has to, because it has no idea what
> lock protects any individual access to the radix tree. The XArray can
> use the RCU checking because it knows that every reference is protected
> by either the spinlock or the RCU lock.
>
> Dave was saying that he has a tree which has to be protected by a mutex
> because of where it is in the locking hierarchy, and I was vigorously
> declining his proposal of allowing him to skip taking the spinlock.
Oh, I wasn't suggesting that you remove the internal tree locking
because we need external locking.
I was trying to point out that the internal locking doesn't remove
the need for external locking, and that there are cases where
smearing the internal lock outside the XA tree doesn't work, either.
i.e. internal locking doesn't replace all the cases where external
locking is required, and so it's less efficient than the existing
radix tree code.
What I was questioning was the value of replacing the radix tree
code with a less efficient structure just to add lockdep validation
to a tree that doesn't actually need any extra locking validation...
Cheers,
Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx