Re: [PATCH v4 15/15] lockdep: Crossrelease feature documentation

From: Peter Zijlstra
Date: Wed Jan 18 2017 - 09:14:56 EST


On Wed, Jan 18, 2017 at 09:14:59PM +0900, byungchul.park wrote:

> +Example 3:
> +
> + CONTEXT X CONTEXT Y
> + --------- ---------
> + mutex_lock A
> + mutex_lock A
> + mutex_unlock A
> + wait_for_complete B /* DEADLOCK */

Each line (across both columns) is a distinct point in time after the
line before.

Therefore, this states that "mutex_unlock A" happens before
"wait_for_completion B", which is clearly impossible.

You don't have to remove everything after mutex_lock A, but the unlock
must not happen before context Y does the unlock.