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
| |