Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030325Ab3DSMZW (ORCPT ); Fri, 19 Apr 2013 08:25:22 -0400 Received: from szxga01-in.huawei.com ([119.145.14.64]:21201 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S968317Ab3DSMZV (ORCPT ); Fri, 19 Apr 2013 08:25:21 -0400 Message-ID: <517137A7.4020605@huawei.com> Date: Fri, 19 Apr 2013 20:25:11 +0800 From: Li Zefan User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: Tejun Heo CC: LKML , Cgroups , Containers , Glauber Costa Subject: [PATCH 00/10] cpuset: implement sane hierarchy behaviors Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.135.68.215] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1936 Lines: 46 Currently some cpuset behaviors are not friendly when cpuset is co-mounted with other cgroup controllers. Now with this patchset if cpuset is mounted with sane_behavior option, it behaves differently: - 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. - A task can be moved into an empty cpuset, and again it takes masks of ancestors, so we drop a task into a newly created cgroup without the user having to do anything for it. As tasks can reside in empy cpusets, here're some rules: - They can be moved to another cpuset, regardless it's empty or not. - Though it takes masks from ancestors, it takes other configs from the empty cpuset. - If the ancestors' masks are changed, those tasks will also be updated to take new masks. The first 6 patches are actually cleanups which can be applied no matter if the last 4 patches are acceptable or not. Li Zefan (10): 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: don't update tasks' cpumask and nodemask in an empty cpuset cpuset: re-structure update_cpumask() a bit 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 -- kernel/cpuset.c | 363 +++++++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 262 insertions(+), 101 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/