Cc: Paul E. McKenney <paulmck@...>, Christoph Lameter <cl@...>, Pekka Enberg <penberg@...>, Ingo Molnar <mingo@...>, Nick Piggin <nickpiggin@...>, Pallipadi, Venkatesh <venkatesh.pallipadi@...>, Suresh Siddha <suresh.b.siddha@...>, Jens Axboe <jens.axboe@...>, Rusty Russell <rusty@...>, Linux Kernel Mailing List <linux-kernel@...>
Just longer code path, I think. It calls the generic
smp_call_function_mask(), which then does a popcount on the cpu mask
(which it needs to do anyway), sees only one bit set, and then punts to
the smp_call_function_single() path. If we maintained a cpus_online
count, then we could fast-path the call to smp_call_function_single() in
the two core/cpu case more efficiently (would still need to scan the
mask to extract the cpu number).
Or alternatively, maybe it isn't actually worth special casing
smp_call_function_single() with a multi-queue smp_call_function_mask()
implementation?
J
--