 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/6] arm: move GIC SGI kicking into separate function
 On Mon, 2013-12-02 at 12:08 +0100, Andre Przywara wrote:
> Currently we unconditionally send SGIs to all cores on SMP bringup.
> PSCI will not need this, so we move this into a function and call it
> explicitly from the platforms that need it. This gets us get rid of
> the empty cpu_up() platform functions in ARM32 and the comment in
> there.
I don't think this is quite true -- even on a PSCI system the kick is
required to get past the gate in head.S.
I wonder how this interacts with PSCI implementations which use an SGI
themselves internally...
> @@ -376,11 +386,6 @@ int __cpu_up(unsigned int cpu)
>          return rc;
>      }
>  
> -    /* We don't know the GIC ID of the CPU until it has woken up, so just 
> signal
> -     * everyone and rely on our own smp_up_cpu gate to ensure only the one we
> -     * want gets through. */
> -    send_SGI_allbutself(GIC_SGI_EVENT_CHECK);
> -
So, I was saying in the 00 mail I'm not sure we can get rid of this
altogether.
But I suppose it is the intention that the platform code always has both
its own logic and this SGI kick (possibly coalesced) in such
circumstances? Which is probably ok?
>      while ( !cpu_online(cpu) )
>      {
>          cpu_relax();
> diff --git a/xen/include/asm-arm/smp.h b/xen/include/asm-arm/smp.h
> index 1485cc6..a1de03c 100644
> --- a/xen/include/asm-arm/smp.h
> +++ b/xen/include/asm-arm/smp.h
> @@ -21,6 +21,8 @@ extern int arch_smp_init(void);
>  extern int arch_cpu_init(int cpu, struct dt_device_node *dn);
>  extern int arch_cpu_up(int cpu);
>  
> +int cpu_up_send_sgi(int cpu);
> +
>  /* Secondary CPU entry point */
>  extern void init_secondary(void);
>  
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
 
 
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |