From: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Cgroups <cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Containers
<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
Glauber Costa <glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
Subject: [PATCH 00/10] cpuset: implement sane hierarchy behaviors
Date: Fri, 19 Apr 2013 20:25:11 +0800 [thread overview]
Message-ID: <517137A7.4020605@huawei.com> (raw)
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(-)
next reply other threads:[~2013-04-19 12:25 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-19 12:25 Li Zefan [this message]
2013-04-19 12:27 ` [PATCH 05/10] cpuset: don't update tasks' cpumask and nodemask in an empty cpuset Li Zefan
[not found] ` <51713819.8050708-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-04-19 18:36 ` Tejun Heo
[not found] ` <20130419183618.GC13811-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-04-20 1:06 ` Li Zefan
[not found] ` <5171EA24.3070001-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-04-21 1:42 ` Tejun Heo
[not found] ` <517137A7.4020605-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-04-19 12:25 ` [PATCH 01/10] cpuset: remove redundant check in cpuset_cpus_allowed_fallback() Li Zefan
2013-04-19 12:25 ` [PATCH 02/10] cpuset: cleanup guarantee_online_{cpus|mems}() Li Zefan
2013-04-19 12:26 ` [PATCH 03/10] cpuset: remove unnecessary variable in cpuset_attach() Li Zefan
2013-04-19 12:26 ` [PATCH 04/10] cpuset: remove cpuset_test_cpumask() Li Zefan
[not found] ` <517137E7.20505-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-04-19 18:27 ` Tejun Heo
2013-04-19 12:27 ` [PATCH 06/10] cpuset: re-structure update_cpumask() a bit Li Zefan
2013-04-19 12:28 ` [PATCH 07/10] cpuset: record old_mems_allowed in struct cpuset Li Zefan
2013-04-19 12:28 ` [PATCH 08/10] cpuset: introduce effective_{cpumask|nodemask}_cpuset() Li Zefan
2013-04-19 12:29 ` [PATCH 09/10] cpuset: allow to keep tasks in empty cpusets Li Zefan
[not found] ` <517138A4.3070209-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-04-19 20:58 ` Tejun Heo
[not found] ` <20130419205821.GA15543-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2013-04-20 1:22 ` Li Zefan
[not found] ` <5171EDC1.4070805-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-04-21 1:41 ` Tejun Heo
2013-04-19 12:29 ` [PATCH 10/10] cpuset: allow to move tasks to " Li Zefan
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=517137A7.4020605@huawei.com \
--to=lizefan-hv44wf8li93qt0dzr+alfa@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=tj-DgEjT+Ai2ygdnm+yROfE0A@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).