[Xen-devel] [PATCH v2 5/6] virt, sched: add cpu pinning to smp_call_sync_on_phys_cpu()

Jan Beulich
Mon, 21 Mar 2016 13:42:58 -0000

>>> On 21.03.16 at 13:24, <JGross at suse.com> wrote:
> @@ -758,9 +759,14 @@ struct smp_sync_call_struct {
>  static void smp_call_sync_callback(struct work_struct *work)
>  {
>  	struct smp_sync_call_struct *sscs;
> +	unsigned int cpu = smp_processor_id();

So this obtains the vCPU number, yet ...

>  	sscs = container_of(work, struct smp_sync_call_struct, work);
> +	preempt_disable();
> +	hypervisor_pin_vcpu(cpu);

... here you're supposed to pass a pCPU number.

Also don't you need to call smp_processor_id() after preempt_disable()?

Jan