Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755945AbdIGVUB (ORCPT ); Thu, 7 Sep 2017 17:20:01 -0400 Received: from mail-lf0-f45.google.com ([209.85.215.45]:37668 "EHLO mail-lf0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752375AbdIGVT7 (ORCPT ); Thu, 7 Sep 2017 17:19:59 -0400 X-Google-Smtp-Source: ADKCNb7UFVfpq8Ipz9N3odIre+lnwslOHZTSFA2FIxJVz1mmX+Oi6llCdZ513hCqoWiVBBatkurFgYXf23s/osIMtbg= MIME-Version: 1.0 In-Reply-To: <20170907152107.v4wbvzi2zxlaelms@hirez.programming.kicks-ass.net> References: <1504744396-4182-1-git-send-email-byungchul.park@lge.com> <20170907094109.t5qzs3glfx32l327@hirez.programming.kicks-ass.net> <20170907152107.v4wbvzi2zxlaelms@hirez.programming.kicks-ass.net> From: Byungchul Park Date: Fri, 8 Sep 2017 06:19:57 +0900 Message-ID: Subject: Re: [PATCH] lockdep: Remove unnecessary acquisitions wrt workqueue flush To: Peter Zijlstra Cc: Byungchul Park , Tejun Heo , johannes.berg@intel.com, Ingo Molnar , Thomas Gleixner , oleg@redhat.com, david@fromorbit.com, "linux-kernel@vger.kernel.org" , kernel-team@lge.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1432 Lines: 35 On Fri, Sep 8, 2017 at 12:21 AM, Peter Zijlstra 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 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