smp: Improve locality in smp_call_function_any()
authorYury Norov [NVIDIA] <yury.norov@gmail.com>
Mon, 23 Jun 2025 00:00:06 +0000 (20:00 -0400)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 26 Jun 2025 21:46:34 +0000 (23:46 +0200)
commit5f295519b42f100c735a1e8e1a70060e26f30c3f
treec864b2ebfd2a9b016d50cab7f48f430b07612a7a
parent09735f0624b494c0959f3327af009283567af320
smp: Improve locality in smp_call_function_any()

smp_call_function_any() tries to make a local call as it's the cheapest
option, or switches to a CPU in the same node. If it's not possible, the
algorithm gives up and searches for any CPU, in a numerical order.

Instead, it can search for the best CPU based on NUMA locality, including
the 2nd nearest hop (a set of equidistant nodes), and higher.

sched_numa_find_nth_cpu() does exactly that, and also helps to drop most
of the housekeeping code.

Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250623000010.10124-2-yury.norov@gmail.com
kernel/smp.c