From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758305AbcBXWCz (ORCPT ); Wed, 24 Feb 2016 17:02:55 -0500 Received: from mail-qk0-f178.google.com ([209.85.220.178]:33700 "EHLO mail-qk0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751750AbcBXWCx (ORCPT ); Wed, 24 Feb 2016 17:02:53 -0500 From: Tejun Heo To: lizefan@huawei.com, hannes@cmpxchg.org Cc: cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com Subject: [PATCHSET v2 cgroup/for-4.6] cgroup: make control mask updates modular and recursive Date: Wed, 24 Feb 2016 17:02:32 -0500 Message-Id: <1456351368-786-1-git-send-email-tj@kernel.org> X-Mailer: git-send-email 2.5.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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@kernel.org