Commit 76504bce authored by Shrikanth Hegde's avatar Shrikanth Hegde Committed by Peter Zijlstra
Browse files

sched/fair: Get this cpu once in find_new_ilb()



Calling smp_processor_id() on:
 - In CONFIG_DEBUG_PREEMPT=y, if preemption/irq is disabled, then it does
   not print any warning.
 - In CONFIG_DEBUG_PREEMPT=n, it doesn't do anything apart from getting
   __smp_processor_id

So with both CONFIG_DEBUG_PREEMPT=y/n, in preemption disabled section
it is better to cache the value. It could save a few cycles. Though
tiny, repeated in loop could add up to a small value.

find_new_ilb is called in interrupt context. So preemption is disabled.
So Hoist the this_cpu out of loop

Signed-off-by: default avatarShrikanth Hegde <sshegde@linux.ibm.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: default avatarMukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com>
Reviewed-by: default avatarK Prateek Nayak <kprateek.nayak@amd.com>
Link: https://patch.msgid.link/20260323193630.640311-2-sshegde@linux.ibm.com
parent e379dce8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -12614,14 +12614,14 @@ static inline int on_null_domain(struct rq *rq)
 */
static inline int find_new_ilb(void)
{
	int this_cpu = smp_processor_id();
	const struct cpumask *hk_mask;
	int ilb_cpu;

	hk_mask = housekeeping_cpumask(HK_TYPE_KERNEL_NOISE);

	for_each_cpu_and(ilb_cpu, nohz.idle_cpus_mask, hk_mask) {

		if (ilb_cpu == smp_processor_id())
		if (ilb_cpu == this_cpu)
			continue;

		if (idle_cpu(ilb_cpu))