Re: [2.6.27-rc5] inotify_read's ev_mutex vs do_page_fault's mmap_sem...

From: Nick Piggin
Date: Wed Sep 10 2008 - 06:12:27 EST


On Wednesday 10 September 2008 19:59, Peter Zijlstra wrote:
> On Wed, 2008-09-10 at 19:50 +1000, Nick Piggin wrote:
> > On Wednesday 10 September 2008 18:37, Ingo Molnar wrote:
> > > * Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:
> > > > On Wednesday 10 September 2008 17:57, Peter Zijlstra wrote:
> > > > > Sure, how about the below - untested - uncompiled, might eat
> > > > > kittens, etc..
> > > > >
> > > > > Just sprinkle something like:
> > > > >
> > > > > might_lock_read(&mm->mmap_sem);
> > > > >
> > > > > in the right places.
> > > >
> > > > Ahh, very nice, thanks! I'll give that a try...
> > >
> > > cool! Please send in an RFC patch once you have something that boots -
> > > we can stick it into tip/core/locking and see whether there's any new
> > > messages on a wide range of systems and workloads. (and we'd also check
> > > whether the number of kittens is an invariant.)
> >
> > Well I have verified it boots, and have used the annotation in some of
> > x86-64's user copy routines (luckily no flood of bugs I was scared of,
> > phew!)
> >
> > So I would like to request you merge Peter's patch, and we'll hopefully
> > start seeing the annotations being used.
>
> Will you send your x86_64 patch to be the first?

OK.


> > FWIW, I don't suppose lockdep
> > can determine that it is a sleeping lock, and do the appropriate
> > might_sleep checks at this point as well?
>
> Humm, no - we don't actually have that information there - I guess one
> could add it to lockdep_map and set it from the various init routines,
> but I'm not sure its worth it - just add might_sleep() along with
> might_lock() :-)

I guess so... seems like lockdep should know about "locks", however :)
Spinlock isn't always a spinlock, and ordinary kernel code usually
should not care about that.

But I'll add it in this case.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/