Messages in this thread | | | Date | Wed, 27 May 2009 15:16:40 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [PATCH] cgroups: handle failure of cgroup_populate_dir() at mount/remount |
| |
On Wed, 27 May 2009 11:24:22 +0800 Li Zefan <lizf@cn.fujitsu.com> wrote:
> KAMEZAWA Hiroyuki wrote: > > On Wed, 27 May 2009 09:07:31 +0800 > > Li Zefan <lizf@cn.fujitsu.com> wrote: > > > >> Paul Menage wrote: > >>> On Fri, May 22, 2009 at 1:25 AM, KAMEZAWA Hiroyuki > >>> <kamezawa.hiroyu@jp.fujitsu.com> wrote: > >>>> Hm, shouldn't we allow "noprefix" to be effective only agaisnt cpuset ? > >>>> I think it's just for backward-compatibility of cpuset. > >>>> (I don't like the option at all.) > >>> Yes, exposing the "noprefix" option externally was one of the mistakes > >>> I made when developing cgroups. > >>> > >>> It seems to me really unlikely that anyone is using "noprefix" for > >> And "noprefix" is not documented in cgroups.txt, so I guess not > >> many people know this option. Even libcgroup doesn't handle it. > >> > >>> anything other than implicitly when mounting the "cpuset" filesystem. > >>> So I'd be inclined to just forbid it if we're mounting more than just > >>> the cpuset subsystem. A bit of a nasty abstraction violation, but it > >>> makes more sense overall. The only problem is that someone *might* be > >>> using it - do we have any way to determine how, and how big do they > >>> have to be before we care? > >>> > >> I think we can never know.. > > > > How about this method ? > > > > - add "noprefix" to "to-be-removed" list. > > - add "WARNING: noprefix option will be removed in 2.6.32 (or 2.6.31)" now > > - remove "noprefix" in 2.6.31-rc or later > > > > I don't see how we can remove noprefix while reserve the compatibility of > old cpuset.. > > As Paul Menage said, we can allow noprefix to be used only if we mount just > cpuset subsystem: > I have no objection.
-Kame
> (pseudo code) > > diff --git a/kernel/cgroup.c b/kernel/cgroup.c > --- a/kernel/cgroup.c > +++ b/kernel/cgroup.c > @@ -886,6 +886,11 @@ static int parse_cgroupfs_options(char *data, > } > } > > + > + if (test_bit(ROOT_NOPREFIX, &opts->flags) && > + (opts->subsys_bits & ~cpuset_subsys_id) != 0) > + return -EINVAL; > + > /* We can't have an empty hierarchy */ > if (!opts->subsys_bits) > return -EINVAL; > >
| |