[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170119015428.GN3326@X58A-UD3R>
Date: Thu, 19 Jan 2017 10:54:28 +0900
From: Byungchul Park <byungchul.park@....com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: 'Boqun Feng' <boqun.feng@...il.com>, mingo@...nel.org,
tglx@...utronix.de, walken@...gle.com, kirill@...temov.name,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
iamjoonsoo.kim@....com, akpm@...ux-foundation.org,
npiggin@...il.com
Subject: Re: [PATCH v4 15/15] lockdep: Crossrelease feature documentation
On Wed, Jan 18, 2017 at 03:12:55PM +0100, Peter Zijlstra wrote:
> 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.
I meant that all statements below mutex_lock A in X are already impossible.
So the order of those are meaningless. But.. I got what you mean.
> You don't have to remove everything after mutex_lock A, but the unlock
> must not happen before context Y does the unlock.
I will apply what you and boqun recommanded, from the next spin.
Thank you,
Byungchul
Powered by blists - more mailing lists