On Mon, 9 May 2022 09:16:37 +0900 Byungchul Park byungchul.park@lge.com 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'