lkml.org 
[lkml]   [2017]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH] lockdep: Remove unnecessary acquisitions wrt workqueue flush
On Fri, Sep 8, 2017 at 12:21 AM, Peter Zijlstra <peterz@infradead.org> wrote:
> 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@infradead.org> 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.

Agree.

But, old code has redundant acquisitions, moreover uses sub-class
to avoid false detection, even though they are the same class.

I will try to enhance readability of completion init, and fix the incorrect
use at the next spin.

--
Thanks,
Byungchul

\
 
 \ /
  Last update: 2017-09-07 23:21    [W:0.057 / U:3.428 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site