mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 02:17:36 -04:00
sched/fair: Add sched_smt_active check for fastpaths
For fastpaths such as wakeup and load balance even minimal code additions can add up. is_core_idle is accessed during load balance. Other callsites of is_core_idle make sched_smt_active() check first. Make the same check in should_we_balance. Rest of access to cpu_smt_mask isn't in fastpath. Note: Remove the stale comment above is_core_idle. Enqueue methods of fair aren't close to it anymore. Suggested-by: K Prateek Nayak <kprateek.nayak@amd.com> Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Valentin Schneider <vschneid@redhat.com> Link: https://patch.msgid.link/20260515172456.542799-4-sshegde@linux.ibm.com
This commit is contained in:
committed by
Peter Zijlstra
parent
5bc6ab2d42
commit
3dbb362f90
@@ -1549,10 +1549,7 @@ update_stats_curr_start(struct cfs_rq *cfs_rq, struct sched_entity *se)
|
||||
se->exec_start = rq_clock_task(rq_of(cfs_rq));
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Scheduling class queueing methods:
|
||||
*/
|
||||
|
||||
/* Check sched_smt_active before calling this to avoid overheads in fastpaths */
|
||||
static inline bool is_core_idle(int cpu)
|
||||
{
|
||||
int sibling;
|
||||
@@ -11961,7 +11958,9 @@ static int should_we_balance(struct lb_env *env)
|
||||
* balancing cores, but remember the first idle SMT CPU for
|
||||
* later consideration. Find CPU on an idle core first.
|
||||
*/
|
||||
if (!(env->sd->flags & SD_SHARE_CPUCAPACITY) && !is_core_idle(cpu)) {
|
||||
if (sched_smt_active() &&
|
||||
!(env->sd->flags & SD_SHARE_CPUCAPACITY) &&
|
||||
!is_core_idle(cpu)) {
|
||||
if (idle_smt == -1)
|
||||
idle_smt = cpu;
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user