From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
To: Tim Chen <tim.c.chen@linux.intel.com>
Cc: 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>,
Chen Yu <yu.c.chen@intel.com>,
Christian Loehle <christian.loehle@arm.com>,
Barry Song <baohua@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Len Brown <lenb@kernel.org>,
ricardo.neri@intel.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 2/4] sched/fair: Skip misfit load accounting when the destination CPU cannot help
Date: Sun, 17 May 2026 17:35:03 -0700 [thread overview]
Message-ID: <20260518003503.GA3654@ranerica-svr.sc.intel.com> (raw)
In-Reply-To: <6a2ae247d4a54d4b39c9295a0c1c1c680dba7ecc.camel@linux.intel.com>
On Fri, May 15, 2026 at 01:12:28PM -0700, Tim Chen wrote:
> On Thu, 2026-05-14 at 11:34 -0700, Ricardo Neri wrote:
> > In domains with asymmetric capacity, identifying misfit load in a
> > scheduling group is not useful when the destination CPU cannot help (i.e.,
> > its capacity exceeds the group's maximum CPU capacity by less than ~5%). In
> > such cases, it also prevents load balance among clusters of equal capacity
> > when CONFIG_SCHED_CLUSTER is enabled. This happens because
> > update_sd_pick_busiest() skips candidate groups of type misfit_task if the
> > destination CPU has similar capacity.
> >
> > Skipping misfit load accounting in this situation allows the group to be
> > classified as has_spare or fully_busy and lets load balancing proceed. Keep
> > marking scheduling groups as overloaded when misfit tasks are present. The
> > sg_overloaded flag propagates to the root domain and allows bigger CPUs in
> > it to help via newly idle balance.
> >
> > Reviewed-by: Christian Loehle <christian.loehle@arm.com>
> > Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
> > ---
> > Changes in v3:
> > * Added Reviewed-by tag from Christian. Thanks!
> >
> > Changes in v2:
> > * Moved the check of the destination CPU capacity inside the code block
> > used for SD_ASYM_CPUCAPACITY. v1 inadvertently broke the mutual
> > exclusion of the sched_reduced_capacity() path.
> > * Keep marking the root domain as overloaded to allow bigger CPUs to
> > help. (sashiko)
> > * Fixed patch description to clarify that the capacity_greater() looks
> > for differences of 5% or more. (Christian)
> > * Reworded the patch description for clarity.
> > * I did not include the Reviewed-by tag from Christian since the patch
> > changed functionally.
> > ---
> > kernel/sched/fair.c | 20 +++++++++++++++++---
> > 1 file changed, 17 insertions(+), 3 deletions(-)
> >
> > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> > index e06e74d9ce0e..dcc02ceb44b5 100644
> > --- a/kernel/sched/fair.c
> > +++ b/kernel/sched/fair.c
> > @@ -10749,10 +10749,24 @@ static inline void update_sg_lb_stats(struct lb_env *env,
> > continue;
> >
> > if (sd_flags & SD_ASYM_CPUCAPACITY) {
> > - /* Check for a misfit task on the cpu */
> > - if (sgs->group_misfit_task_load < rq->misfit_task_load) {
> > - sgs->group_misfit_task_load = rq->misfit_task_load;
> > + if (rq->misfit_task_load) {
> > + /*
> > + * Always mark the domain overloaded so big CPUs
> > + * can pick up misfit tasks via newly idle
> > + * balance.
> > + */
> > *sg_overloaded = 1;
> > +
> > + /*
> > + * Only account misfit load if @dst_cpu can
> > + * help; otherwise, the group may be classified
> > + * as misfit_task and update_sd_pick_busiest()
> > + * will skip it.
>
> You mean "sd_pick_busiest() will pick it" instead of "skip it" for misfit task
> load balancing in the above comment?
Thank you for your review!
I mean "skip it" because update_sd_pick_busiest() will skip a candidate group
of type misfit if dst_cpu has less than 1.05 times the max capacity of such group.
It is the first check in the function.
Skipping misfit accounting allows the candidate group to be classified as fully_
busy or has_spare so that tasks can be balanced between clusters of equal capacity.
I will rephrase this comment to make it more clear.
next prev parent reply other threads:[~2026-05-18 0:26 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-14 18:34 [PATCH v3 0/4] sched: Fix cluster scheduling in the presence of asymmetric capacity Ricardo Neri
2026-05-14 18:34 ` [PATCH v3 1/4] sched/fair: Check CPU capacity before comparing group types during load balance Ricardo Neri
2026-05-15 12:29 ` Chen, Yu C
2026-05-18 12:14 ` Ricardo Neri
2026-05-15 19:26 ` Tim Chen
2026-05-18 14:57 ` Vincent Guittot
2026-05-14 18:34 ` [PATCH v3 2/4] sched/fair: Skip misfit load accounting when the destination CPU cannot help Ricardo Neri
2026-05-15 12:49 ` Chen, Yu C
2026-05-18 16:22 ` Ricardo Neri
2026-05-15 20:12 ` Tim Chen
2026-05-18 0:35 ` Ricardo Neri [this message]
2026-05-18 15:06 ` Vincent Guittot
2026-05-14 18:34 ` [PATCH v3 3/4] sched/fair: Allow load balancing between CPUs of identical capacity Ricardo Neri
2026-05-15 15:16 ` Chen, Yu C
2026-05-18 3:10 ` Ricardo Neri
2026-05-14 18:34 ` [PATCH v3 4/4] sched/topology: Do not clear SD_PREFER_SIBLING in domains with clusters Ricardo Neri
2026-05-15 20:21 ` Tim Chen
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=20260518003503.GA3654@ranerica-svr.sc.intel.com \
--to=ricardo.neri-calderon@linux.intel.com \
--cc=baohua@kernel.org \
--cc=bsegall@google.com \
--cc=christian.loehle@arm.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 \
--cc=yu.c.chen@intel.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®