Messages in this thread | | | From | "Byungchul Park" <> | Subject | RE: [PATCH 4/4] lockdep: Fix workqueue crossrelease annotation | Date | Wed, 30 Aug 2017 18:01:59 +0900 |
| |
> -----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) <peterz@infradead.org> > > > > --- > > > > 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.
| |