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

Reply via email to