linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: glommer@parallels.com, lizf@cn.fujitsu.com,
	containers@lists.linux-foundation.org, cgroups@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, fweisbec@gmail.com, rni@google.com,
	ctalbott@google.com
Subject: [PATCHSET] cgroup: cftype based file interface, take #2
Date: Wed, 21 Mar 2012 15:17:33 -0700	[thread overview]
Message-ID: <1332368265-21586-1-git-send-email-tj@kernel.org> (raw)

Hello,

This is the second take at improving cgroup file addition/removal
interface.  Changes from the last take[L] are,

* CGROUP_SUBSYS_CFTYPES[_COND]() dropped and
  cgroup_subsys->base_cftypes is added instead.  This works better for
  subsystems implemented as module.  tcp_memcontrol now uses an
  explicit __initcall() to register its cftypes.

* 0005-cgroup-relocate-cftype-and-cgroup_subsys-definitions.patch
  added as cleanup.

* 0007-memcg-always-create-memsw-files-if-CONFIG_CGROUP_MEM.patch
  added so that memsw files are always created if enabled in config as
  suggested by KAMEZAWA.

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.  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-relocate-cftype-and-cgroup_subsys-definitions.patch
 0006-cgroup-convert-all-non-memcg-controllers-to-the-new-.patch
 0007-memcg-always-create-memsw-files-if-CONFIG_CGROUP_MEM.patch
 0008-cgroup-convert-memcg-controller-to-the-new-cftype-in.patch
 0009-cgroup-remove-cgroup_add_file-s.patch
 0010-cgroup-relocate-__d_cgrp-and-__d_cft.patch
 0011-cgroup-introduce-struct-cfent.patch
 0012-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, I think the cftypes registration for tcp_memcontrol is fine
as is in this patchset and we just need to move the init to the tail
of ->create().  Let's worry about memcg for module-loadable protocols
whey they are added.  Can you please send a patch to move init to
->create()?

If nobody objects && after Li comes back and acks the changes, I'll
route these through cgroup/for-3.5.

diffstat follows.

 block/blk-cgroup.c        |   45 ++---
 include/linux/cgroup.h    |   51 ++++--
 kernel/cgroup.c           |  359 +++++++++++++++++++++++++++++++++++-----------
 kernel/cgroup_freezer.c   |   11 -
 kernel/cpuset.c           |   31 +--
 kernel/sched/core.c       |   16 --
 mm/memcontrol.c           |   77 ++++-----
 net/core/netprio_cgroup.c |   30 +--
 net/ipv4/tcp_memcontrol.c |   71 ++++-----
 net/sched/cls_cgroup.c    |   31 +--
 security/device_cgroup.c  |   10 -
 11 files changed, 437 insertions(+), 295 deletions(-)

Thanks.

--
tejun

[L] http://thread.gmane.org/gmane.linux.kernel.containers/22623
[1] http://thread.gmane.org/gmane.linux.kernel.cgroups/1192/focus=22611

             reply	other threads:[~2012-03-21 22:17 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-21 22:17 Tejun Heo [this message]
2012-03-21 22:17 ` [PATCH 01/12] cgroup: move cgroup_clear_directory() call out of cgroup_populate_dir() Tejun Heo
2012-03-21 22:17 ` [PATCH 02/12] cgroup: build list of all cgroups under a given cgroupfs_root Tejun Heo
2012-03-21 22:17 ` [PATCH 03/12] cgroup: implement cgroup_add_cftypes() and friends Tejun Heo
2012-03-21 22:17 ` [PATCH 04/12] cgroup: merge cft_release_agent cftype array into the base files array Tejun Heo
2012-03-21 22:17 ` [PATCH 05/12] cgroup: relocate cftype and cgroup_subsys definitions in controllers Tejun Heo
2012-03-21 22:17 ` [PATCH 06/12] cgroup: convert all non-memcg controllers to the new cftype interface Tejun Heo
2012-03-21 22:17 ` [PATCH 07/12] memcg: always create memsw files if CONFIG_CGROUP_MEM_RES_CTLR_SWAP Tejun Heo
2012-03-22  0:23   ` KAMEZAWA Hiroyuki
2012-03-21 22:17 ` [PATCH 08/12] cgroup: convert memcg controller to the new cftype interface Tejun Heo
2012-03-22  0:27   ` KAMEZAWA Hiroyuki
2012-03-21 22:17 ` [PATCH 09/12] cgroup: remove cgroup_add_file[s]() Tejun Heo
2012-03-21 22:17 ` [PATCH 10/12] cgroup: relocate __d_cgrp() and __d_cft() Tejun Heo
2012-03-21 22:17 ` [PATCH 11/12] cgroup: introduce struct cfent Tejun Heo
2012-03-30 20:42   ` [PATCH UPDATED " Tejun Heo
2012-03-21 22:17 ` [PATCH 12/12] cgroup: implement cgroup_rm_cftypes() Tejun Heo
2012-03-22  9:04 ` [PATCHSET] cgroup: cftype based file interface, take #2 Glauber Costa
2012-03-30 12:42 ` Li Zefan
2012-03-30 15:42   ` Tejun Heo
2012-03-31 12:56     ` Li Zefan
2012-03-31 16:30       ` Tejun Heo
2012-03-30 22:29 ` Tejun Heo
2012-03-31 12:44   ` Li Zefan
2012-03-31 16:31     ` Tejun Heo
2012-04-03  3:22   ` Glauber Costa
2012-04-03 18:47     ` Tejun Heo
2012-04-03 18:52       ` Tejun Heo
2012-04-03 20:37         ` Glauber Costa
2012-03-31 16:47 ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1332368265-21586-1-git-send-email-tj@kernel.org \
    --to=tj@kernel.org \
    --cc=cgroups@vger.kernel.org \
    --cc=containers@lists.linux-foundation.org \
    --cc=ctalbott@google.com \
    --cc=fweisbec@gmail.com \
    --cc=glommer@parallels.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=rni@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).