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

From: Byungchul Park
Date: Wed Aug 30 2017 - 05:35:14 EST


> -----Original Message-----
> From: Peter Zijlstra [mailto:peterz@xxxxxxxxxxxxx]
> Sent: Wednesday, August 30, 2017 6:14 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 11:12:23AM +0200, Peter Zijlstra wrote:
> > 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
> > work should not depend on the setup of the thread.
>
> Furthermore, the save/restore can't preserve those dependencies. The
> moment a work exhausts xhlocks[] they are gone. So by assuming the first

They are gone _one time_ only once it has been overwritten, and
Recovered at next turn, with original code. But you made it
un-recoverable even at the next time and lose all valuable
dependencies unconditionally.

> work _will_ exhaust the history there is effectively nothing lost.