From: Mete Durlu <meted@linux.ibm.com>
To: Shrikanth Hegde <sshegde@linux.ibm.com>,
Andrea Righi <arighi@nvidia.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>,
K Prateek Nayak <kprateek.nayak@amd.com>,
Heiko Carstens <hca@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Tim Chen <tim.c.chen@linux.intel.com>,
Chen Yu <yu.c.chen@intel.com>,
Ilya Leoshkevich <iii@linux.ibm.com>,
linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org
Subject: Re: [PATCH RFC 0/2] sched: Introduce idle SMT priority for asymmetric capacity systems
Date: Mon, 12 Oct 2026 14:32:53 +0200 [thread overview]
Message-ID: <6c4fcef6-6ff8-4733-a451-53744d2c821d@linux.ibm.com> (raw)
In-Reply-To: <effe96a4-c995-4da4-aac6-bef195df36c2@linux.ibm.com>
Hi,
sorry for the late reply, I have been sick since Friday.
I though about what has been written for a bit.
>>> Well, when we see steal time, it usually means there is high
>>> contention and
>>> we are using more vCPUs at this moment than possible.
>>> So we mark them as non-preferred. Note that they are idle cpus. But
>>> non-preferred.
>>>
>>> That means preferred CPUs may have more than 1 task. If we spill over
>>> if there
>>> is idle non-preferred CPUs, we will be back to square one. No?
>>
>> I agree that CPUs excluded by the steal governor should remain avoided
>> even when
>> all preferred CPUs are busy.
>>
>> I'm wondering if we should have two levels: cpu_preferred_mask acting
>> as a hard
>> affinity constraint and an entitlement-based soft affinity within that
>> mask? The
>
> That not what entitlement usually means. At least not PowerVM. when one
> creates VM,
> they assign VP=Virtual Cores and EC=Entitled Cores. and Hypervisor
> ensure at least EC
> worth of cores are always assigned to that VM. There is no need of
> priority within that
> entitlement.
Wouldn't it make sense to first fully load entitled cores before
moving onto virtual cores on Power? On s390 we would definitely
benefit from it on some cases.
>> soft affinity would prefer high-entitlement CPUs: first fully idle
>> cores, then
>> idle SMT siblings. Once those CPUs are busy, tasks could spill onto
>
> I think when one has high steal time and hence reduced preferred CPUs,
> there will
> likely be no fully idle cores within preferred CPUs.
Shrikanth, wouldn't something like below still make sense?
> Note that current logic takes out last set of CPUs and find_new_ilb
> iterates from
> the beginning. So if there is idle core within the preferred CPUs, it
> will be chosen.
>
>> lower-entitlement CPUs still inside cpu_preferred_mask, again
>> preferring fully
>> idle cores over idle SMT siblings. If all CPUs inside
>> cpu_preferred_mask are
>> busy, tasks would queue there. The soft affinity would never override the
>> governor's restriction by spilling onto CPUs it excluded due to
>> contention.
>>
> As we were discussing, as long as threads don't end up on non-preferred
> CPUs,
> we might be okay. With the above, find_new_ilb will becomes very complex
> IMHO
> and I am not sure if it is worth it.
>
> likely what we need is,
> - Fully idle preferred Core.
> - idle preferred CPU.
> - any idle CPU.
Andrea does this resemble what you were describing;
1-) (steal time == 0)
====================================================================
cpu_preffered_mask = active_cpus
cpu_soft_affinity = 0
All cpus are available for scheduler to pick and use.
Idle cores are preferred in case of asymmetric capacities.
2-) (steal time > 0) && (steal time <= initial_threshold*)
====================================================================
cpu_preffered_mask = active_cpus
cpu_soft_affinity = entitled cpus
In this case entitled cores get fully filled (SMT siblings first)
before spilling load onto the rest of the cpus on preferred mask.
*Initial threshold is a value I just devised. Ideally arch specific
and dynamically configurable, setting it to just 0 should also
be an option.
3-) (steal time > initial_threshold)
====================================================================
cpu_preffered_mask = entitled cpus + steal governor's modifications
cpu_soft_affinity = entitled cpus
Carrying the logic from case 2 but shrinking the preferred mask
according to the increased steal time value.
Shrikanth/Andrea,
does what I describe above make sense and would it make a reasonable
addition to the vCPU backoff mechanism?
*Considering guests with hardware based topology and underlying
hypervisor scheduling vCPUs per core;
I'd expect this approach to allow for guests having a smaller
footprint for longer and steal time to start appearing later than
usual as the entitled cores are fully utilized before touching other
cores.
*This is the case for s390 for example. I am not sure if it is the same
for Power or any other architecture.
next prev parent reply other threads:[~2026-10-12 12:33 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-08 8:30 Mete Durlu
2026-10-08 8:30 ` [PATCH RFC 1/2] kernel/sched: Introduce idle SMT priority Mete Durlu
2026-10-08 8:30 ` [PATCH RFC 2/2] s390/topology: Enable SCHED_IDLE_SMT_PRIO Mete Durlu
2026-10-08 12:10 ` [PATCH RFC 0/2] sched: Introduce idle SMT priority for asymmetric capacity systems Andrea Righi
2026-10-08 14:58 ` Shrikanth Hegde
2026-10-08 15:24 ` Mete Durlu
2026-10-08 15:44 ` Shrikanth Hegde
2026-10-09 15:12 ` Andrea Righi
2026-10-09 15:35 ` Shrikanth Hegde
2026-10-12 12:32 ` Mete Durlu [this message]
2026-10-12 13:49 ` Shrikanth Hegde
2026-10-09 15:32 ` Vincent Guittot
2026-10-12 11:04 ` Mete Durlu
2026-10-12 14:49 ` Vincent Guittot
2026-10-08 21:52 ` Tim Chen
2026-10-08 21:29 ` Tim Chen
2026-10-12 10:41 ` Mete Durlu
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=6c4fcef6-6ff8-4733-a451-53744d2c821d@linux.ibm.com \
--to=meted@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=arighi@nvidia.com \
--cc=borntraeger@linux.ibm.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=iii@linux.ibm.com \
--cc=juri.lelli@redhat.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sshegde@linux.ibm.com \
--cc=svens@linux.ibm.com \
--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®