From: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org
Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kernel-team-b10kYP2dOMg@public.gmane.org
Subject: [PATCHSET v2 cgroup/for-4.6] cgroup: make control mask updates modular and recursive
Date: Wed, 24 Feb 2016 17:02:32 -0500 [thread overview]
Message-ID: <1456351368-786-1-git-send-email-tj@kernel.org> (raw)
Hello,
Changes from v1[1] are
* Patches 0012-0014 and 0016 added. They further refactor the
operations and convert existing css management paths to use the new
modular operations.
* 0005 updated to yield the correct result on v1 hierarchies too.
* 0015 updated to reflect earlier changes.
Currently, subsystem enabling and disabling in the default hierarchy
are implemented as a long chain of interdependent operations in
cgroup_subtree_control_write(). The function calculates what need to
be done to its children and excute the necessary operations. The
function unfortunately ends up being a rather opaque blob of
operations which is difficult to wrap one's head around or reuse.
This patchset restructures control mask update so that it's composed
of discrete idempotent and recursive operations and convert existing
css managment paths to use them which makes them simpler, more robust
and capable of recursive operations.
This patchset includes the following 12 patches.
0001-cgroup-separate-out-interface-file-creation-from-css.patch
0002-cgroup-explicitly-track-whether-a-cgroup_subsys_stat.patch
0003-cgroup-reorder-operations-in-cgroup_mkdir.patch
0004-cgroup-factor-out-cgroup_create-out-of-cgroup_mkdir.patch
0005-cgroup-introduce-cgroup_control-and-cgroup_ss_mask.patch
0006-cgroup-factor-out-cgroup_drain_offline-from-cgroup_s.patch
0007-cgroup-factor-out-cgroup_apply_control_disable-from-.patch
0008-cgroup-factor-out-cgroup_apply_control_enable-from-c.patch
0009-cgroup-make-cgroup_drain_offline-and-cgroup_apply_co.patch
0010-cgroup-introduce-cgroup_-save-propagate-restore-_con.patch
0011-cgroup-factor-out-cgroup_-apply-finalize-_control-fr.patch
0012-cgroup-combine-cgroup_mutex-locking-and-offline-css-.patch
0013-cgroup-use-cgroup_apply_enable_control-in-cgroup-cre.patch
0014-cgroup-reimplement-rebind_subsystems-using-cgroup_ap.patch
0015-cgroup-make-cgroup_calc_subtree_ss_mask-take-this_ss.patch
0016-cgroup-allocate-2x-cgrp_cset_links-when-setting-up-a.patch
The patchset is available in the following git branch.
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-recursive-control
diffstat follows. Thanks.
include/linux/cgroup-defs.h | 3
kernel/cgroup.c | 760 +++++++++++++++++++++++++-------------------
2 files changed, 446 insertions(+), 317 deletions(-)
--
tejun
[1] http://lkml.kernel.org/g/1456199146-14765-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
next reply other threads:[~2016-02-24 22:02 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-24 22:02 Tejun Heo [this message]
2016-02-24 22:02 ` [PATCH 01/16] cgroup: separate out interface file creation from css creation Tejun Heo
2016-02-24 22:02 ` [PATCH 02/16] cgroup: explicitly track whether a cgroup_subsys_state is visible to userland Tejun Heo
2016-02-24 22:02 ` [PATCH 04/16] cgroup: factor out cgroup_create() out of cgroup_mkdir() Tejun Heo
2016-02-24 22:02 ` [PATCH 05/16] cgroup: introduce cgroup_control() and cgroup_ss_mask() Tejun Heo
2016-02-24 22:02 ` [PATCH 06/16] cgroup: factor out cgroup_drain_offline() from cgroup_subtree_control_write() Tejun Heo
2016-02-24 22:02 ` [PATCH 09/16] cgroup: make cgroup_drain_offline() and cgroup_apply_control_{disable|enable}() recursive Tejun Heo
2016-02-24 22:02 ` [PATCH 10/16] cgroup: introduce cgroup_{save|propagate|restore}_control() Tejun Heo
2016-02-24 22:02 ` [PATCH 11/16] cgroup: factor out cgroup_{apply|finalize}_control() from cgroup_subtree_control_write() Tejun Heo
[not found] ` <1456351368-786-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2016-02-24 22:02 ` [PATCH 03/16] cgroup: reorder operations in cgroup_mkdir() Tejun Heo
2016-02-24 22:02 ` [PATCH 07/16] cgroup: factor out cgroup_apply_control_disable() from cgroup_subtree_control_write() Tejun Heo
2016-02-24 22:02 ` [PATCH 08/16] cgroup: factor out cgroup_apply_control_enable() " Tejun Heo
2016-02-24 22:02 ` [PATCH 12/16] cgroup: combine cgroup_mutex locking and offline css draining Tejun Heo
2016-02-24 22:02 ` [PATCH 13/16] cgroup: use cgroup_apply_enable_control() in cgroup creation path Tejun Heo
2016-02-24 22:02 ` [PATCH 14/16] cgroup: reimplement rebind_subsystems() using cgroup_apply_control() and friends Tejun Heo
2016-02-24 22:02 ` [PATCH 15/16] cgroup: make cgroup_calc_subtree_ss_mask() take @this_ss_mask Tejun Heo
2016-02-24 22:02 ` [PATCH 16/16] cgroup: allocate 2x cgrp_cset_links when setting up a new root Tejun Heo
2016-03-02 18:14 ` [PATCH 17/17] cgroup: update css iteration in cgroup_update_dfl_csses() Tejun Heo
2016-03-03 3:02 ` [PATCHSET v2 cgroup/for-4.6] cgroup: make control mask updates modular and recursive Zefan Li
2016-03-03 14:59 ` 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=1456351368-786-1-git-send-email-tj@kernel.org \
--to=tj-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
--cc=kernel-team-b10kYP2dOMg@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
/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).