Messages in this thread |  | | | Date | Thu, 15 May 2008 00:39:45 -0700 | | From | "Paul Menage" <> | | Subject | Re: [-mm][PATCH 4/4] Add memrlimit controller accounting and control (v4) |
On Thu, May 15, 2008 at 12:03 AM, Balbir Singh
<balbir@linux.vnet.ibm.com> wrote:
>
> I want to focus on this conclusion/assertion, since it takes care of
> most of the locking related discussion above, unless I missed
> something.
>
> My concern with using mmap_sem, is that
>
> 1. It's highly contended (every page fault, vma change, etc)
But the only *new* cases of taking the mmap_sem that this would
introduce would be:
- on a failed vm limit charge
- when a task exit/exec causes an mm ownership change
- when a task moves between two cgroups in the memrlimit hierarchy.
All of these should be rare events, so I don't think the additional
contention is a worry.
> 2. It's going to make the locking hierarchy deeper and complex
Yes, potentially. But if the upside of that is that we eliminate a
lock/unlock on a shared lock on every mmap/munmap call, it might well
be worth it.
> 3. It's not appropriate to call all the accounting callbacks with
> the mmap_sem() held, since the undo operations _can get_ complicated
> at the caller.
>
Can you give an example?
> I would prefer introducing a new lock, so that other subsystems are
> not affected.
>
For getting the first cut of the memrlimit controller working this may
well make sense. But it would be nice to avoid it longer-term.
Paul
|  |