On 05/04/16 10:11, Peter Zijlstra wrote: > On Tue, Apr 05, 2016 at 07:10:04AM +0200, Juergen Gross wrote: >> +int smp_call_on_cpu(unsigned int cpu, bool pin, int (*func)(void *), void *par) > > Why .pin and not .phys? .pin does not (to me) reflect the > hypervisor/physical-cpu thing. I don't mind either way. As you don't like .pin, lets name it .phys. > Also, as per smp_call_function_single() would it not be more consistent > to make this the last argument? Okay, I'll change it. > >> +{ >> + struct smp_call_on_cpu_struct sscs = { >> + .work = __WORK_INITIALIZER(sscs.work, smp_call_on_cpu_callback), >> + .done = COMPLETION_INITIALIZER_ONSTACK(sscs.done), >> + .func = func, >> + .data = par, >> + .cpu = pin ? cpu : -1, >> + }; >> + >> + if (cpu >= nr_cpu_ids) > > You might want to also include cpu_online(). > > if (cpu >= nr_cpu_ids || !cpu_online(cpu)) Indeed, good idea. >> + return -ENXIO; > > Seeing how its fairly hard to schedule work on a cpu that's not actually > there. Really? ;-) Juergen _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization