Re: [-mm][PATCH 4/4] Add memrlimit controller accounting and control (v4)

From: Paul Menage
Date: Thu May 15 2008 - 03:40:23 EST


On Thu, May 15, 2008 at 12:03 AM, Balbir Singh
<balbir@xxxxxxxxxxxxxxxxxx> 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
--
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/