From: Shrikanth Hegde <sshegde@linux.vnet.ibm.com>
To: Chen Yu <yu.c.chen@intel.com>,
Keisuke Nishimura <keisuke.nishimura@inria.fr>
Cc: Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Vincent Guittot <vincent.guittot@linaro.org>,
linux-kernel@vger.kernel.org,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Mel Gorman <mgorman@suse.de>,
Valentin Schneider <vschneid@redhat.com>,
Julia Lawall <julia.lawall@inria.fr>
Subject: Re: [PATCH v2] sched/fair: Fix the decision for load balance
Date: Tue, 31 Oct 2023 13:16:41 +0530 [thread overview]
Message-ID: <46e8388e-8995-4733-88ff-daa160c81702@linux.vnet.ibm.com> (raw)
In-Reply-To: <ZUCXwmzaoNbRbNpR@chenyu5-mobl2.ccr.corp.intel.com>
On 10/31/23 11:29 AM, Chen Yu wrote:
> On 2023-10-30 at 18:29:46 +0100, Keisuke Nishimura wrote:
>> should_we_balance is called for the decision to do load-balancing.
>> When sched ticks invoke this function, only one CPU should return
>> true. However, in the current code, two CPUs can return true. The
>> following situation, where b means busy and i means idle, is an
>> example, because CPU 0 and CPU 2 return true.
>>
>> [0, 1] [2, 3]
>> b b i b
>>
>> This fix checks if there exists an idle CPU with busy sibling(s)
>> after looking for a CPU on an idle core. If some idle CPUs with busy
>> siblings are found, just the first one should do load-balancing.
>>
As Chen indicated, it would be better to carry reviewed by tags.
>> Fixes: b1bfeab9b002 ("sched/fair: Consider the idle state of the whole core for load balance")
>> Signed-off-by: Keisuke Nishimura <keisuke.nishimura@inria.fr>
>> ---
>> kernel/sched/fair.c | 10 +++++++---
>> 1 file changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
>> index 2048138ce54b..69d63fae34f4 100644
>> --- a/kernel/sched/fair.c
>> +++ b/kernel/sched/fair.c
>> @@ -11079,12 +11079,16 @@ static int should_we_balance(struct lb_env *env)
>> continue;
>> }
>>
>> - /* Are we the first idle CPU? */
>> + /*
>> + * Are we the first idle core in a MC or higher domain
>
> It is possible that the Cluster domain is lower than a MC.
> cluser domain: CPUs share the same L2
> MC domain: CPUs share the same LLC
>
> grep . domain*/{name,flags}
> domain0/name:CLS
> domain1/name:MC
> domain2/name:NUMA
> domain0/flags:SD_BALANCE_NEWIDLE SD_BALANCE_EXEC SD_BALANCE_FORK SD_WAKE_AFFINE SD_SHARE_PKG_RESOURCES SD_PREFER_SIBLING
> domain1/flags:SD_BALANCE_NEWIDLE SD_BALANCE_EXEC SD_BALANCE_FORK SD_WAKE_AFFINE SD_SHARE_PKG_RESOURCES SD_PREFER_SIBLING
> domain2/flags:SD_BALANCE_NEWIDLE SD_BALANCE_EXEC SD_BALANCE_FORK SD_WAKE_AFFINE SD_SERIALIZE SD_OVERLAP SD_NUMA
>
> So, maybe:
> Are we the first idle core in a non-SMT domain or higher,
Yes. That makes sense. Forgot about recent cluster addition.
>
> thanks,
> Chenyu
>
>> + * or the first idle CPU in a SMT domain?
>> + */
>> return cpu == env->dst_cpu;
>> }
>>
>> - if (idle_smt == env->dst_cpu)
>> - return true;
>> + /* Are we the first idle CPU with busy siblings? */
>> + if (idle_smt != -1)
>> + return idle_smt == env->dst_cpu;
>>
>> /* Are we the first CPU of this group ? */
>> return group_balance_cpu(sg) == env->dst_cpu;
>> --
>> 2.34.1
>>
prev parent reply other threads:[~2023-10-31 7:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-30 17:29 [PATCH v2] sched/fair: Fix the decision for load balance Keisuke Nishimura
2023-10-31 5:59 ` Chen Yu
2023-10-31 6:18 ` Chen Yu
2023-10-31 7:46 ` Shrikanth Hegde [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=46e8388e-8995-4733-88ff-daa160c81702@linux.vnet.ibm.com \
--to=sshegde@linux.vnet.ibm.com \
--cc=dietmar.eggemann@arm.com \
--cc=julia.lawall@inria.fr \
--cc=keisuke.nishimura@inria.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.