Re: [PATCH 08 of 11] anon-vma-rwsem

From: Andrew Morton
Date: Wed May 07 2008 - 18:33:33 EST


On Thu, 8 May 2008 00:22:05 +0200
Andrea Arcangeli <andrea@xxxxxxxxxxxx> wrote:

> > No, the simple solution is to just make up a whole new upper-level lock,
> > and get that lock *first*. You can then take all the multiple locks at a
> > lower level in any order you damn well please.
>
> Unfortunately the lock you're talking about would be:
>
> static spinlock_t global_lock = ...
>
> There's no way to make it more granular.
>
> So every time before taking any ->i_mmap_lock _and_ any anon_vma->lock
> we'd need to take that extremely wide spinlock first (and even worse,
> later it would become a rwsem when XPMEM is selected making the VM
> even slower than it already becomes when XPMEM support is selected at
> compile time).

Nope. We only need to take the global lock before taking *two or more* of
the per-vma locks.

I really wish I'd thought of that.
--
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/