From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
To: Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Valentin Schneider <vschneid@redhat.com>,
Tim C Chen <tim.c.chen@linux.intel.com>,
Barry Song <baohua@kernel.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
Len Brown <lenb@kernel.org>,
ricardo.neri@intel.com, linux-kernel@vger.kernel.org,
Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Subject: [PATCH RESEND 4/4] sched/topology: Keep SD_PREFER_SIBLING for domains with clusters
Date: Mon, 30 Mar 2026 15:20:38 -0700 [thread overview]
Message-ID: <20260330-rneri-fix-cas-clusters-v1-4-1e465b6fecb2@linux.intel.com> (raw)
In-Reply-To: <20260330-rneri-fix-cas-clusters-v1-0-1e465b6fecb2@linux.intel.com>
There are topologies with scheduling domains that contain CPUs of
asymmetric capacity and grouped into two or more clusters of CPUs of
equal capacity sharing L2 cache. CONFIG_SCHED_CLUSTER requires to
balance load among clusters sharing a resource.
Keep the SD_PREFER_SIBLING in the child domains to indicate to the load
balancer that it should spread load among cluster siblings.
Checks for capacity in the load balancer will prevent migrations from
high- to low-capacity CPUs. Likewise, misfit load will still be used to
move high-load tasks to bigger CPUs.
Remove unnecessary parentheses while here.
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
---
kernel/sched/topology.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index 8e06b1d22e91..61786cfdc78f 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -1689,8 +1689,15 @@ sd_init(struct sched_domain_topology_level *tl,
/*
* Convert topological properties into behaviour.
*/
- /* Don't attempt to spread across CPUs of different capacities. */
- if ((sd->flags & SD_ASYM_CPUCAPACITY) && sd->child)
+ /*
+ * Don't attempt to spread across CPUs of different capacities. An
+ * exception to this rule are domains in which there are clusters of
+ * CPUs sharing a resource. Keep the flag in such case to balance load
+ * among them. The load balancer will prevent task migrations from
+ * high- to low-capacity CPUs.
+ */
+ if (sd->flags & SD_ASYM_CPUCAPACITY && sd->child &&
+ !(sd->child->flags & SD_CLUSTER))
sd->child->flags &= ~SD_PREFER_SIBLING;
if (sd->flags & SD_SHARE_CPUCAPACITY) {
--
2.43.0
prev parent reply other threads:[~2026-03-30 22:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-30 22:20 [PATCH RESEND 0/4] sched: Fix cluster scheduling in the presence of asymmetric capacity Ricardo Neri
2026-03-30 22:20 ` [PATCH RESEND 1/4] sched/fair: Always skip fully_busy higher-capacity groups for load balance Ricardo Neri
2026-03-30 22:20 ` [PATCH RESEND 2/4] sched/fair: Ignore misfit load if the destination CPU cannot help Ricardo Neri
2026-04-01 9:30 ` Christian Loehle
2026-04-02 4:27 ` Ricardo Neri
2026-03-30 22:20 ` [PATCH RESEND 3/4] sched/fair: Allow load balancing between CPUs of equal capacity Ricardo Neri
2026-04-01 8:56 ` Christian Loehle
2026-04-02 4:30 ` Ricardo Neri
2026-03-30 22:20 ` Ricardo Neri [this message]
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=20260330-rneri-fix-cas-clusters-v1-4-1e465b6fecb2@linux.intel.com \
--to=ricardo.neri-calderon@linux.intel.com \
--cc=baohua@kernel.org \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=ricardo.neri@intel.com \
--cc=rostedt@goodmis.org \
--cc=tim.c.chen@linux.intel.com \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
/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
all inboxes | Powered by JetHome®