Re: [PATCH 4/4] lockdep: Fix workqueue crossrelease annotation

From: Byungchul Park
Date: Thu Aug 31 2017 - 03:26:46 EST


On Wed, Aug 30, 2017 at 08:25:46PM +0900, Byungchul Park wrote:
> On Wed, Aug 30, 2017 at 06:24:39PM +0900, Byungchul Park wrote:
> > > -----Original Message-----
> > > From: Peter Zijlstra [mailto:peterz@xxxxxxxxxxxxx]
> > > Sent: Wednesday, August 30, 2017 6:12 PM
> > > To: Byungchul Park
> > > Cc: mingo@xxxxxxxxxx; tj@xxxxxxxxxx; boqun.feng@xxxxxxxxx;
> > > david@xxxxxxxxxxxxx; johannes@xxxxxxxxxxxxxxxx; oleg@xxxxxxxxxx; linux-
> > > kernel@xxxxxxxxxxxxxxx; kernel-team@xxxxxxx
> > > Subject: Re: [PATCH 4/4] lockdep: Fix workqueue crossrelease annotation
> > >
> > > On Wed, Aug 30, 2017 at 06:01:59PM +0900, Byungchul Park wrote:
> > > > My point is that we inevitably lose valuable dependencies by yours.
> > > That's
> > > > why I've endlessly asked you 'do you have any reason you try those
> > > patches?'
> > > > a ton of times. And you have never answered it.
> > >
> > > The only dependencies that are lost are those between the first work and
> > > the setup of the workqueue thread.
> > >
> > > And there obviously _should_ not be any dependencies between those. A
> >
> > 100% right. Since there obviously should not be any, it would be better
> > to check them. So I've endlessly asked you 'do you have any reason removing
> > the opportunity for that check?'. Overhead? Logical problem? Or want to
> > believe workqueue setup code perfect forever? I mean, is it a problem if we
> > check them?
> >
> > > work should not depend on the setup of the thread.
> >
> > 100% right.
>
> For example - I'm giving you the same example repeatedly:
>
> context X context Y
> --------- ---------
> wait_for_completion(C)
> acquire(A)
> process_one_work()
> acquire(B)
> work->fn()
> complete(C)
>
> Please let lockdep check C->A and C->B.

You always stop answering whenever I ask you for opinion with this
example. I'm really curious. Could you let me know your opinion about
this example?