Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751382AbdH3JCE (ORCPT ); Wed, 30 Aug 2017 05:02:04 -0400 Received: from LGEAMRELO11.lge.com ([156.147.23.51]:53458 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751316AbdH3JCD (ORCPT ); Wed, 30 Aug 2017 05:02:03 -0400 X-Original-SENDERIP: 156.147.1.125 X-Original-MAILFROM: byungchul.park@lge.com X-Original-SENDERIP: 10.177.220.161 X-Original-MAILFROM: byungchul.park@lge.com From: "Byungchul Park" To: "'Peter Zijlstra'" Cc: , , , , , , , References: <20170823115843.662056844@infradead.org> <20170823121432.990701317@infradead.org> <20170824021840.GC6772@X58A-UD3R> <20170824140240.t4imrpvussebfimm@hirez.programming.kicks-ass.net> <20170825011114.GA3858@X58A-UD3R> <20170829085939.ggmb6xiohw67micb@hirez.programming.kicks-ass.net> <20170830020953.GE3240@X58A-UD3R> <20170830074117.GG3240@X58A-UD3R> <20170830085333.GM32112@worktop.programming.kicks-ass.net> In-Reply-To: <20170830085333.GM32112@worktop.programming.kicks-ass.net> Subject: RE: [PATCH 4/4] lockdep: Fix workqueue crossrelease annotation Date: Wed, 30 Aug 2017 18:01:59 +0900 Message-ID: <004601d3216e$a3702030$ea506090$@lge.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQJwgPNBZSrwwUhgk1jM4IWrVNl3zAFx86IaAd+W3YgB43Hd9wGLNxGCAovBIH8CxViJIAHcH29vAmfLCDag3y+WMA== Content-Language: ko Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2523 Lines: 59 > -----Original Message----- > From: Peter Zijlstra [mailto:peterz@infradead.org] > Sent: Wednesday, August 30, 2017 5:54 PM > To: Byungchul Park > Cc: mingo@kernel.org; tj@kernel.org; boqun.feng@gmail.com; > david@fromorbit.com; johannes@sipsolutions.net; oleg@redhat.com; linux- > kernel@vger.kernel.org; kernel-team@lge.com > Subject: Re: [PATCH 4/4] lockdep: Fix workqueue crossrelease annotation > > On Wed, Aug 30, 2017 at 04:41:17PM +0900, Byungchul Park wrote: > > On Wed, Aug 30, 2017 at 11:09:53AM +0900, Byungchul Park wrote: > > > > > Signed-off-by: Peter Zijlstra (Intel) > > > > --- > > > > diff --git a/kernel/workqueue.c b/kernel/workqueue.c > > > > index c0331891dec1..ab3c0dc8c7ed 100644 > > > > --- a/kernel/workqueue.c > > > > +++ b/kernel/workqueue.c > > > > @@ -2107,14 +2107,14 @@ __acquires(&pool->lock) > > > > * Which would create W1->C->W1 dependencies, even though > there is no > > > > * actual deadlock possible. There are two solutions, using > a > > > > * read-recursive acquire on the work(queue) 'locks', but > this will then > > > > - * hit the lockdep limitation on recursive locks, or simly > discard > > > > + * hit the lockdep limitation on recursive locks, or simply > discard > > > > * these locks. > > > > * > > > > * AFAICT there is no possible deadlock scenario between the > > > > * flush_work() and complete() primitives (except for > single-threaded > > > > * workqueues), so hiding them isn't a problem. > > > > */ > > > > - crossrelease_hist_start(XHLOCK_PROC, true); > > > > + lockdep_invariant_state(true); > > > > > > This is what I am always curious about. It would be ok if you agree > with > > > removing this work-around after fixing acquire things in wq. But, you > > > keep to say this is essencial. > > > > > > You should focus on what dependencies actually are, than saparating > > > contexts unnecessarily. Of course, we have to do it for each work, > _BUT_ > > > not between outside of work and each work since there might be > > > dependencies between them certainly. > > > > You have never answered it. I'm curious about your answer. If you can't, > > I think you have to revert all your patches. All yours are wrong. > > Because I don't understand what you're on about. And my patches actually > work. 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.