Re: [PATCH] lockdep: Remove unnecessary acquisitions wrt workqueue flush

From: Peter Zijlstra
Date: Thu Sep 07 2017 - 11:21:26 EST


On Thu, Sep 07, 2017 at 08:37:08PM +0900, Byungchul Park wrote:
> On Thu, Sep 7, 2017 at 6:41 PM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> > On Thu, Sep 07, 2017 at 09:33:16AM +0900, Byungchul Park wrote:
> >> Workqueue added manual acquisitions to catch deadlock cases. Now
> >> crossrelease was introduced, some of those are redundant because
> >> crossrelease-enabled wait_for_completeion() also does it. Removed it.
> >
> > This does not explain how it doesn't become the regular timing dependent
> > stuff cross-release normally is.
>
> Yes, I will add more explanation for it at the next spin.
>
> But, let me explain it a bit here to help you get it, since it's very
> simple. This has nothing to do with 'might' thing I introduced
> previously. For 'might' thing, I will start it after getting your response.
>
> Here, I just removed acquire() because wait_for_completion()
> already includes the acquire() by LOCKDEP_COMPLETIONS.
> That's all.

Ah I see, but it does so using some fairly nasty completion init stuff.
The old code was far easier to read.