Re: [PATCH RFC v6 00/21] DEPT(Dependency Tracker)

Steven Rostedt
2022-05-09T20:47:29Z

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'