[GIT PULL] cpuset changes for v3.11-rc1

Tejun Heo tj at kernel.org
Wed Jul 3 02:47:09 UTC 2013


Hello, Linus.

Please note that this cgroup/for-3.11-cpuset pull request assumes that
cgroup/for-3.11 branch is pulled in first.

cpuset has always been rather odd about its configurations - a cgroup
right after creation didn't allow any task executions before
configuration, changing configuration in the parent modifies the
descendants irreversibly and so on.  These behaviors are inherently
nasty and almost hostile against sharing the hierarchy with other
controllers making it very difficult to use in unified hierarchy.

Li is currently in the process of updating the behaviors for
__DEVEL__sane_behavior which is the bulk of changes in this pull
request.  It isn't complete yet and the behaviors will change further
but all changes are gated behind sane_behavior.  In the process, the
rather hairy work-item punting which was used to work around the
limitations of cgroup descendant iterator was simplified.

Pulling this branch creates a conflict in include/linux/cgroup.h in
the comment area which catalogues the behavior changes gated by
__DEVEL__sane_behavior.  The cgroup main branch reorganized and added
some entries and this branch adds to it too.  The conflict and
resolution is trivial.

The conflict:

<<<<<<< HEAD
	 * - "tasks" is removed.  Everything should be at process
	 *   granularity.  Use "cgroup.procs" instead.
=======
	 * - cpuset: tasks will be kept in empty cpusets when hotplug happens
	 *   and take masks of ancestors with non-empty cpus/mems, instead of
	 *   being moved to an ancestor.
	 *
	 * - cpuset: a task can be moved into an empty cpuset, and again it
	 *   takes masks of ancestors.
	 *
	 * - memcg: use_hierarchy is on by default and the cgroup file for
	 *   the flag is not created.
>>>>>>> c9e5fe66f5947c9e56dfc7655e5b4b127ca2120f
	 *
	 * - "release_agent" and "notify_on_release" are removed.
	 *   Replacement notification mechanism will be implemented.
	 *
	 * - rename(2) is disallowed.
	 *
	 * - memcg: use_hierarchy is on by default and the cgroup file for
	 *   the flag is not created.
	 */

The resolution:

 	 * - "tasks" is removed.  Everything should be at process
	 *   granularity.  Use "cgroup.procs" instead.
	 *
	 * - "release_agent" and "notify_on_release" are removed.
	 *   Replacement notification mechanism will be implemented.
	 *
	 * - rename(2) is disallowed.
	 *
	 * - cpuset: tasks will be kept in empty cpusets when hotplug happens
	 *   and take masks of ancestors with non-empty cpus/mems, instead of
	 *   being moved to an ancestor.
	 *
	 * - cpuset: a task can be moved into an empty cpuset, and again it
	 *   takes masks of ancestors.
	 *
	 * - memcg: use_hierarchy is on by default and the cgroup file for
	 *   the flag is not created.
	 */

The described changes are available in the following branch

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-3.11-cpuset

for you to fetch changes up to c9e5fe66f5947c9e56dfc7655e5b4b127ca2120f:

  cpuset: rename @cont to @cgrp (2013-06-13 20:48:19 -0700)

Just in case, an example merge is available.

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git test-merge-3.11

----------------------------------------------------------------
Li Zefan (13):
      cpuset: remove redundant check in cpuset_cpus_allowed_fallback()
      cpuset: cleanup guarantee_online_{cpus|mems}()
      cpuset: remove unnecessary variable in cpuset_attach()
      cpuset: remove cpuset_test_cpumask()
      cpuset: re-structure update_cpumask() a bit
      cpuset: let hotplug propagation work wait for task attaching
      cpuset: remove async hotplug propagation work
      cpuset: record old_mems_allowed in struct cpuset
      cpuset: introduce effective_{cpumask|nodemask}_cpuset()
      cpuset: allow to keep tasks in empty cpusets
      cpuset: allow to move tasks to empty cpusets
      cpuset: fix to migrate mm correctly in a corner case
      cpuset: rename @cont to @cgrp

 include/linux/cgroup.h |   7 +
 kernel/cpuset.c        | 478 +++++++++++++++++++++++++++++--------------------
 2 files changed, 294 insertions(+), 191 deletions(-)

Thanks.

-- 
tejun


More information about the Containers mailing list