From mboxrd@z Thu Jan 1 00:00:00 1970 From: Li Zefan Subject: [PATCH v2 00/12] cpuset: separate configured masks and effective masks Date: Fri, 11 Oct 2013 17:49:21 +0800 Message-ID: <5257C9A1.1030404@huawei.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: Sender: cgroups-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii" To: Tejun Heo Cc: LKML , cgroups This patcheset introduces behavior changes, but only if you mount cgroupfs with sane_behavior option: - We introduce new interfaces cpuset.effective_cpus and cpuset.effective_mems, while cpuset.cpus and cpuset.mems will be configured masks. - The configured masks can be changed by writing cpuset.cpus/mems only. They won't be changed when hotplug happens. - Users can config cpus and mems without restrictions from the parent cpuset. effective masks will enforce the hierarchical behavior. - Users can also config cpus and mems to have already offlined CPU/nodes. - When a CPU/node is onlined, it will be brought back to the effective masks if it's in the configured masks. - We build sched domains based on effective cpumask but not configured cpumask. v2: - fixed two bugs - made changelogs more verbose - added more comments - changed cs->real_{mems,cpus}_allowed to cs->effective_{mems, cpus} - splitted "cpuset: enable onlined cpu/node in effective masks" into 2 patches - exported cpuset.effective_{cpus,mems} unconditionally Li Zefan (12): cpuset: add cs->effective_cpus and cs->effective_mems cpuset: update cpuset->effective_{cpus,mems} at hotplug cpuset: update cs->effective_{cpus,mems} when config changes cpuset: inherit ancestor's masks if effective_{cpus,mems} becomes empty cpuset: use effective cpumask to build sched domains cpuset: initialize top_cpuset's configured masks at mount cpuset: apply cs->effective_{cpus,mems} cpuset: make cs->{cpus,mems}_allowed as user-configured masks cpuset: refactor cpuset_hotplug_update_tasks() cpuset: enable onlined cpu/node in effective masks cpuset: allow writing offlined masks to cpuset.cpus/mems cpuset: export effective masks to userspace kernel/cpuset.c | 513 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 316 insertions(+), 197 deletions(-) -- 1.8.0.2 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757399Ab3JKJuL (ORCPT ); Fri, 11 Oct 2013 05:50:11 -0400 Received: from szxga01-in.huawei.com ([119.145.14.64]:43401 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752551Ab3JKJuJ (ORCPT ); Fri, 11 Oct 2013 05:50:09 -0400 Message-ID: <5257C9A1.1030404@huawei.com> Date: Fri, 11 Oct 2013 17:49:21 +0800 From: Li Zefan User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: Tejun Heo CC: LKML , cgroups Subject: [PATCH v2 00/12] cpuset: separate configured masks and effective masks 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 This patcheset introduces behavior changes, but only if you mount cgroupfs with sane_behavior option: - We introduce new interfaces cpuset.effective_cpus and cpuset.effective_mems, while cpuset.cpus and cpuset.mems will be configured masks. - The configured masks can be changed by writing cpuset.cpus/mems only. They won't be changed when hotplug happens. - Users can config cpus and mems without restrictions from the parent cpuset. effective masks will enforce the hierarchical behavior. - Users can also config cpus and mems to have already offlined CPU/nodes. - When a CPU/node is onlined, it will be brought back to the effective masks if it's in the configured masks. - We build sched domains based on effective cpumask but not configured cpumask. v2: - fixed two bugs - made changelogs more verbose - added more comments - changed cs->real_{mems,cpus}_allowed to cs->effective_{mems, cpus} - splitted "cpuset: enable onlined cpu/node in effective masks" into 2 patches - exported cpuset.effective_{cpus,mems} unconditionally Li Zefan (12): cpuset: add cs->effective_cpus and cs->effective_mems cpuset: update cpuset->effective_{cpus,mems} at hotplug cpuset: update cs->effective_{cpus,mems} when config changes cpuset: inherit ancestor's masks if effective_{cpus,mems} becomes empty cpuset: use effective cpumask to build sched domains cpuset: initialize top_cpuset's configured masks at mount cpuset: apply cs->effective_{cpus,mems} cpuset: make cs->{cpus,mems}_allowed as user-configured masks cpuset: refactor cpuset_hotplug_update_tasks() cpuset: enable onlined cpu/node in effective masks cpuset: allow writing offlined masks to cpuset.cpus/mems cpuset: export effective masks to userspace kernel/cpuset.c | 513 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 316 insertions(+), 197 deletions(-) -- 1.8.0.2