linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Waiman Long <longman@redhat.com>
To: Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>
Cc: cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org, kernel-team@fb.com, pjt@google.com,
	luto@amacapital.net, Mike Galbraith <efault@gmx.de>,
	torvalds@linux-foundation.org, Roman Gushchin <guro@fb.com>,
	Juri Lelli <juri.lelli@redhat.com>,
	Patrick Bellasi <patrick.bellasi@arm.com>,
	Waiman Long <longman@redhat.com>
Subject: [PATCH v9 6/7] cpuset: Don't rebuild sched domains if cpu changes in non-domain root
Date: Tue, 29 May 2018 09:41:33 -0400	[thread overview]
Message-ID: <1527601294-3444-7-git-send-email-longman@redhat.com> (raw)
In-Reply-To: <1527601294-3444-1-git-send-email-longman@redhat.com>

With the cpuset v1, any changes to the list of allowable CPUs in a cpuset
may cause changes in the sched domain configuration depending on the
load balancing states and the cpu lists of its parent and its children.

With cpuset v2 (on default hierarchy), there are more restrictions
on how the load balancing state of a cpuset can change. As a result,
only changes made in a sched domain root will cause possible changes
to the corresponding sched domain. CPU changes to any of the non-domain
root cpusets will not cause changes in the sched domain configuration.
As a result, we don't need to call rebuild_sched_domains_locked()
for changes in a non-domain root cpuset saving precious cpu cycles.

Signed-off-by: Waiman Long <longman@redhat.com>
---
 kernel/cgroup/cpuset.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index f6ae483..9513f90 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -971,11 +971,15 @@ static void update_cpumasks_hier(struct cpuset *cs, struct cpumask *new_cpus)
 		update_tasks_cpumask(cp);
 
 		/*
-		 * If the effective cpumask of any non-empty cpuset is changed,
-		 * we need to rebuild sched domains.
+		 * On legacy hierarchy, if the effective cpumask of any non-
+		 * empty cpuset is changed, we need to rebuild sched domains.
+		 * On default hiearchy, the cpuset needs to be a sched
+		 * domain root as well.
 		 */
 		if (!cpumask_empty(cp->cpus_allowed) &&
-		    is_sched_load_balance(cp))
+		    is_sched_load_balance(cp) &&
+		   (!cgroup_subsys_on_dfl(cpuset_cgrp_subsys) ||
+		    is_sched_domain_root(cp)))
 			need_rebuild_sched_domains = true;
 
 		rcu_read_lock();
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2018-05-29 13:45 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-29 13:41 [PATCH v9 0/7] Enable cpuset controller in default hierarchy Waiman Long
2018-05-29 13:41 ` [PATCH v9 1/7] cpuset: " Waiman Long
2018-05-29 13:41 ` [PATCH v9 2/7] cpuset: Add new v2 cpuset.sched.domain_root flag Waiman Long
2018-05-30 14:18   ` Juri Lelli
2018-05-30 14:57     ` Waiman Long
2018-05-31  9:49   ` Peter Zijlstra
2018-05-29 13:41 ` [PATCH v9 3/7] cpuset: Add cpuset.sched.load_balance flag to v2 Waiman Long
2018-05-31 10:44   ` Peter Zijlstra
2018-05-31 10:54   ` Peter Zijlstra
2018-05-31 13:36     ` Waiman Long
2018-05-31 12:26   ` Peter Zijlstra
2018-05-31 13:54     ` Waiman Long
2018-05-31 15:20       ` Peter Zijlstra
2018-05-31 15:36         ` Waiman Long
2018-05-31 16:08           ` Peter Zijlstra
2018-05-31 16:42             ` Waiman Long
2018-06-20 14:46               ` Peter Zijlstra
2018-06-21  7:40                 ` Waiman Long
2018-05-29 13:41 ` [PATCH v9 4/7] cpuset: Make generate_sched_domains() recognize isolated_cpus Waiman Long
2018-05-29 13:41 ` [PATCH v9 5/7] cpuset: Expose cpus.effective and mems.effective on cgroup v2 root Waiman Long
2018-05-29 13:41 ` Waiman Long [this message]
2018-05-29 13:41 ` [PATCH v9 7/7] cpuset: Allow reporting of sched domain generation info Waiman Long
2018-05-30 10:13 ` [PATCH v9 0/7] Enable cpuset controller in default hierarchy Juri Lelli
2018-05-30 12:56   ` Waiman Long
2018-05-30 13:05     ` Juri Lelli
2018-05-30 13:47       ` Waiman Long
2018-05-30 13:52         ` Juri Lelli

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=1527601294-3444-7-git-send-email-longman@redhat.com \
    --to=longman@redhat.com \
    --cc=cgroups@vger.kernel.org \
    --cc=efault@gmx.de \
    --cc=guro@fb.com \
    --cc=hannes@cmpxchg.org \
    --cc=juri.lelli@redhat.com \
    --cc=kernel-team@fb.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan@huawei.com \
    --cc=luto@amacapital.net \
    --cc=mingo@redhat.com \
    --cc=patrick.bellasi@arm.com \
    --cc=peterz@infradead.org \
    --cc=pjt@google.com \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.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).