[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181107102752.GK9781@hirez.programming.kicks-ass.net>
Date: Wed, 7 Nov 2018 11:27:52 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Jason Gunthorpe <jgg@...lanox.com>
Cc: Daniel Jordan <daniel.m.jordan@...cle.com>,
"rjw@...ysocki.net" <rjw@...ysocki.net>,
"linux-pm@...r.kernel.org" <linux-pm@...r.kernel.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
"kvm@...r.kernel.org" <kvm@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"aarcange@...hat.com" <aarcange@...hat.com>,
"aaron.lu@...el.com" <aaron.lu@...el.com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"alex.williamson@...hat.com" <alex.williamson@...hat.com>,
"bsd@...hat.com" <bsd@...hat.com>,
"darrick.wong@...cle.com" <darrick.wong@...cle.com>,
"dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>,
"jwadams@...gle.com" <jwadams@...gle.com>,
"jiangshanlai@...il.com" <jiangshanlai@...il.com>,
"mhocko@...nel.org" <mhocko@...nel.org>,
"mike.kravetz@...cle.com" <mike.kravetz@...cle.com>,
"Pavel.Tatashin@...rosoft.com" <Pavel.Tatashin@...rosoft.com>,
"prasad.singamsetty@...cle.com" <prasad.singamsetty@...cle.com>,
"rdunlap@...radead.org" <rdunlap@...radead.org>,
"steven.sistare@...cle.com" <steven.sistare@...cle.com>,
"tim.c.chen@...el.com" <tim.c.chen@...el.com>,
"tj@...nel.org" <tj@...nel.org>, "vbabka@...e.cz" <vbabka@...e.cz>
Subject: Re: [RFC PATCH v4 01/13] ktask: add documentation
On Tue, Nov 06, 2018 at 08:51:54PM +0000, Jason Gunthorpe wrote:
> On Tue, Nov 06, 2018 at 12:34:11PM -0800, Daniel Jordan wrote:
>
> > > What isn't clear is if this calling thread is waiting or not. Only do
> > > this inheritance trick if it is actually waiting on the work. If it is
> > > not, nobody cares.
> >
> > The calling thread waits. Even if it didn't though, the inheritance trick
> > would still be desirable for timely completion of the job.
>
> Can you make lockdep aware that this is synchronous?
>
> ie if I do
>
> mutex_lock()
> ktask_run()
> mutex_lock()
>
> Can lockdep know that all the workers are running under that lock?
>
> I'm thinking particularly about rtnl_lock as a possible case, but
> there could also make some sense to hold the read side of the mm_sem
> or similar like the above.
Yes, the normal trick is adding a fake lock to ktask_run and holding
that over the actual job. See lock_map* in flush_workqueue() vs
process_one_work().
Powered by blists - more mailing lists