Re: [PATCHSET] cgroup: cftype based file interface

From: Glauber Costa
Date: Mon Mar 19 2012 - 06:24:13 EST


On 03/17/2012 03:35 AM, Tejun Heo wrote:
Hello, guys.

This patch replaces cgroup file interface with cftype based one which
allows dynamic additions and removals of cftype arrays whether the
target subsystem is attached or not.

Great

This can be used to make subsys
rebinding via remount work properly but I intentionally avoided doing
that at the moment.

This makes cgroup population simpler for controllers and will be used
to allow controllers to be more dynamic. e.g. blkio subsys has
sub-policies which may come and go while blkio subsys is attached and
it currently uses fixed set of files which stays blank if not in use.
This will also be useful for implementing unified hierarchy.

This patchset contains the following patches.

0001-cgroup-move-cgroup_clear_directory-call-out-of-cgrou.patch
0002-cgroup-build-list-of-all-cgroups-under-a-given-cgrou.patch
0003-cgroup-implement-cgroup_add_cftypes-and-friends.patch
0004-cgroup-merge-cft_release_agent-cftype-array-into-the.patch
0005-cgroup-convert-all-non-memcg-controllers-to-the-new-.patch
0006-cgroup-convert-memcg-controller-to-the-new-cftype-in.patch
0007-cgroup-remove-cgroup_add_file-s.patch
0008-cgroup-relocate-__d_cgrp-and-__d_cft.patch
0009-cgroup-introduce-struct-cfent.patch
0010-cgroup-implement-cgroup_rm_cftypes.patch

and is on top of

cgroup/for-3.4 3ce3230a0cff484e5130153f244d4fb8a56b3a8b
+ [1] cgroup: deprecate remount option changes mount option

and is also available in the following git branch.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git cgroup-cftype

Glauber, can you please try to move net kmem stuff out of
->populate(). If ->create() doesn't work for whatever reason, can you
please explain it to me so that we can find a proper solution?

The main reason is twofold:

It first had to do with the order in which registerings take place at the kernel. But this matter most for the root cgroup. For the children, it should be all initialized anyway. So we can special case whatever is needed.

Another point was not to bloat the socket structures with more function calls, for populate and create. But we can possibly be able to store some data ourselves, and figure it out.

How should I do it? Do you want me to provide a patch ontop of your tree ?
--
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/