Re: [RFC PATCH 3/6] smp: Run functions concurrently in smp_call_function_many()

From: Peter Zijlstra
Date: Mon May 27 2019 - 05:19:01 EST


> + /*
> + * Choose the most efficient way to send an IPI. Note that the
> + * number of CPUs might be zero due to concurrent changes to the
> + * provided mask or cpu_online_mask.
> + */

Since we have preemption disabled here, I don't think online mask can
shrink, cpu-offline uses stop_machine().

> + if (nr_cpus == 1)
> + arch_send_call_function_single_ipi(last_cpu);
> + else if (likely(nr_cpus > 1))
> + arch_send_call_function_ipi_mask(cfd->cpumask_ipi);
> + }