Re: +cgroups-forbid-noprefix-if-mounting-more-than-just-cpuset-subsystem.patch added to -mm tree

From: Dhaval Giani
Date: Tue Jun 02 2009 - 05:10:18 EST


On Mon, Jun 01, 2009 at 11:02:58PM -0700, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
>
> The patch titled
> cgroups: forbid noprefix if mounting more than just cpuset subsystem
> has been added to the -mm tree. Its filename is
> cgroups-forbid-noprefix-if-mounting-more-than-just-cpuset-subsystem.patch
>
> Before you just go and hit "reply", please:
> a) Consider who else should be cc'ed
> b) Prefer to cc a suitable mailing list as well
> c) Ideally: find the original patch on the mailing list and do a
> reply-to-all to that, adding suitable additional cc's
>
> *** Remember to use Documentation/SubmitChecklist when testing your code ***
>
> See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find
> out what to do about this
>
> The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
>
> ------------------------------------------------------
> Subject: cgroups: forbid noprefix if mounting more than just cpuset subsystem
> From: Li Zefan <lizf@xxxxxxxxxxxxxx>
>
> The 'noprefix' option was introduced for backwards-compatibility of
> cpuset, but actually it can be used when mounting other subsystems.
>
> This results in possibility of name collision, and now the collision can
> really happen, because we have 'stat' file in both memory and cpuacct
> subsystem:
>
> # mount -t cgroup -o noprefix,memory,cpuacct xxx /mnt
>
> Cgroup will happily mount the 2 subsystems, but only 'stat' file of memory
> subsys can be seen.
>
> We don't want users to use nopreifx, and also want to avoid name
> collision, so we change to allow noprefix only if mounting just the cpuset
> subsystem.
>

I am not sure if this is a good idea. For libcgroup, we would then be
adding a special case for just cpuset. I would rather that we allow it
either for all the subsystems or none of them.

thanks,
> Signed-off-by: Li Zefan <lizf@xxxxxxxxxxxxxx>
> Cc: Paul Menage <menage@xxxxxxxxxx>
> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
> Cc: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx>
> Cc: Dhaval Giani <dhaval@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
>
> kernel/cgroup.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff -puN kernel/cgroup.c~cgroups-forbid-noprefix-if-mounting-more-than-just-cpuset-subsystem kernel/cgroup.c
> --- a/kernel/cgroup.c~cgroups-forbid-noprefix-if-mounting-more-than-just-cpuset-subsystem
> +++ a/kernel/cgroup.c
> @@ -842,6 +842,11 @@ static int parse_cgroupfs_options(char *
> struct cgroup_sb_opts *opts)
> {
> char *token, *o = data ?: "all";
> + unsigned long mask = (unsigned long)-1;
> +
> +#ifdef CONFIG_CPUSETS
> + mask = ~(1 << cpuset_subsys_id);
> +#endif
>
> opts->subsys_bits = 0;
> opts->flags = 0;
> @@ -886,6 +891,11 @@ static int parse_cgroupfs_options(char *
> }
> }
>
> + /* We allow noprefix only if mounting just the cpuset subsystem */
> + if (test_bit(ROOT_NOPREFIX, &opts->flags) &&
> + (opts->subsys_bits & mask))
> + return -EINVAL;
> +
> /* We can't have an empty hierarchy */
> if (!opts->subsys_bits)
> return -EINVAL;
> _
>
> Patches currently in -mm which might be from lizf@xxxxxxxxxxxxxx are
>
> origin.patch
> linux-next.patch
> mm-add-swap-cache-interface-for-swap-reference.patch
> mm-modify-swap_map-and-add-swap_has_cache-flag.patch
> mm-reuse-unused-swap-entry-if-necessary.patch
> hexdump-remove-the-trailing-space.patch
> cgroups-make-messages-more-readable.patch
> cgroups-forbid-noprefix-if-mounting-more-than-just-cpuset-subsystem.patch
> devcgroup-skip-superfluous-checks-when-found-the-dev_all-elem.patch
> memcg-remove-some-redundant-checks.patch
> memcg-remove-unneeded-forward-declaration-from-schedh.patch
> memcg-fix-swap-accounting.patch

--
regards,
Dhaval
--
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/