Re: [PATCHv2 0/2] remap_file_pages() decommission

From: Kirill A. Shutemov
Date: Mon May 12 2014 - 08:46:34 EST


On Fri, May 09, 2014 at 08:14:08AM -0700, Linus Torvalds wrote:
> On Fri, May 9, 2014 at 7:05 AM, Kirill A. Shutemov
> <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:
> >
> > Hm. I'm confused here. Do we have any limit forced per-user?
>
> Sure we do. See "struct user_struct". We limit max number of
> processes, open files, signals etc.
>
> > I only see things like rlimits which are copied from parrent.
> > Is it what you want?
>
> No, rlimits are per process (although in some cases what they limit
> are counted per user despite the _limits_ of those resources then
> being settable per thread).
>
> So I was just thinking that if we raise the per-mm default limits,
> maybe we should add a global per-user limit to make it harder for a
> user to use tons and toms of vma's.

Here's the first attempt.

I'm not completely happy about current_user(). It means we rely on that
user of mm owner task is always equal to user of current. Not sure if it's
always the case.

Other option is to make MM_OWNER is always on and lookup proper user
through task_cred_xxx(rcu_dereference(mm->owner), user).