Re: [PATCH 01 of 11] mmu-notifier-core

Jack Steiner
2008-05-05T16:21:36Z

On Fri, May 02, 2008 at 05:05:04PM +0200, Andrea Arcangeli wrote:
> # HG changeset patch
> # User Andrea Arcangeli <andrea@qumranet.com>
> # Date 1209740175 -7200
> # Node ID 1489529e7b53d3f2dab8431372aa4850ec821caa
> # Parent 5026689a3bc323a26d33ad882c34c4c9c9a3ecd8
> mmu-notifier-core

I upgraded to the latest mmu notifier patch & hit a deadlock. (Sorry -
I should have seen this earlier but I haven't tracked the last couple
of patches).

The GRU does the registration/deregistration of mmu notifiers from mmap/munmap.
At this point, the mmap_sem is already held writeable. I hit a deadlock
in mm_lock.

A quick fix would be to do one of the following:

- move the mmap_sem locking to the caller of the [de]registration routines.
Since the first/last thing done in mm_lock/mm_unlock is to
acquire/release mmap_sem, this change does not cause major changes.

- add a flag to mmu_notifier_[un]register routines to indicate
if mmap_sem is already locked.

I've temporarily deleted the mm_lock locking of mmap_sem and am continuing to
test. More later....

--- jack