[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110623134759.GC8058@somewhere.redhat.com>
Date: Thu, 23 Jun 2011 15:48:04 +0200
From: Frederic Weisbecker <fweisbec@...il.com>
To: Paul Menage <menage@...gle.com>
Cc: LKML <linux-kernel@...r.kernel.org>,
Li Zefan <lizf@...fujitsu.com>,
Johannes Weiner <hannes@...xchg.org>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [RFC PATCH 4/4] cgroups: Add an rlimit subsystem
On Tue, Jun 21, 2011 at 10:37:03AM -0700, Paul Menage wrote:
> On Sun, Jun 19, 2011 at 4:51 PM, Frederic Weisbecker <fweisbec@...il.com> wrote:
> > +static void rlim_cgroup_exit(struct cgroup_subsys *ss, struct cgroup *cgrp,
> > + struct cgroup *old_cgrp, struct task_struct *task)
> > +{
> > + rlim_remove_proc(old_cgrp);
> > +}
>
> Since this is used for both the exit callback and the attach callback,
> it should have a more generic name.
Right.
> > +static int rlim_can_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
> > +{
> > + struct rlim *rlim = cgroup_rlim(cgrp);
> > + struct res_counter *limit_fail_at;
> > +
> > + return res_counter_charge(&rlim->proc_counter, 1, &limit_fail_at);
> > +}
>
> Can't this fail spuriously in the presence of hierarchies?
>
> E.g. if cgroup A has children, and A is at its limit, then moving
> tasks around between A and its children, or between different children
> of A, seems like it would fail due to the temporary double counting.
Good point. Probably I should first uncharge the old cgroup and its parents.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists