[PATCH v4 2/7] xen/arm: SMP support

Stefano Stabellini stefano.stabellini at eu.citrix.com
Fri Apr 26 06:27:00 EDT 2013


On Fri, 26 Apr 2013, Ian Campbell wrote:
> On Thu, 2013-04-25 at 19:45 +0100, Stefano Stabellini wrote:
> > On Thu, 25 Apr 2013, Ian Campbell wrote:
> > > > > > @@ -216,6 +245,8 @@ static int __init xen_guest_init(void)
> > > > > >  	 * is required to use VCPUOP_register_vcpu_info to place vcpu info
> > > > > >  	 * for secondary CPUs as they are brought up. */
> > > > > >  	per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
> > > > > > +	for_each_online_cpu(i)
> > > > > > +		xen_secondary_init(i);
> > > > > >  
> > > > > >  	gnttab_init();
> > > > > >  	if (!xen_initial_domain())
> > > > > [...]
> > > > > > @@ -244,7 +280,7 @@ static int __init xen_init_events(void)
> > > > > >  		return -EINVAL;
> > > > > >  	}
> > > > > >  
> > > > > > -	enable_percpu_irq(xen_events_irq, 0);
> > > > > > +	on_each_cpu(xen_percpu_enable_events, NULL, 0);
> > > > > 
> > > > > It feels like there ought to be some sort of per-cpu bringup callback
> > > > > which takes care of these dynamically. Maybe that doesn't matter until
> > > > > we get vcpu hotplug going?
> > > > 
> > > > I suspect there isn't one, considering that on_each_cpu is also used by 
> > > > kvm_vgic_hyp_init, kvm_timer_hyp_init and others.
> > > 
> > > Could we use cpu_notifiers for this?
> > 
> > cpu_notifiers are for cpu hotplug, not for secondary cpu bringup
> 
> Are you sure they don't also trigger during bringup, because the
> distinction is a little bit academic...

My mistake, they do run on secondary cpus, but not in our case because
xen_guest_init is called *after* cpu_notifiers are called.
So, they are too early for Xen.



More information about the linux-arm-kernel mailing list