On Mon, 9 May 2022 09:16:37 +0900
Byungchul Park [off-list ref] wrote:
CASE 2.
lock L with depth n
lock A
lock_nested L' with depth n + 1
...
unlock L'
unlock A
unlock L
This case is allowed by Lockdep.
This case is *NOT* allowed by DEPT cuz it's a *DEADLOCK*.
---
The following scenario would explain why CASE 2 is problematic.
THREAD X THREAD Y
lock L with depth n
lock L' with depth n
lock A
lock A
lock_nested L' with depth n + 1
I'm confused by what exactly you are saying is a deadlock above.
Are you saying that lock A and L' are inversed? If so, lockdep had better
detect that regardless of L. A nested lock associates the the nesting with
the same type of lock. That is, in lockdep nested tells lockdep not to
trigger on the L and L' but it will not ignore that A was taken.
-- Steve
lock_nested L'' with depth n + 1
... ...
unlock L' unlock L''
unlock A unlock A
unlock L unlock L'