On Fri, 2017-04-07 at 22:55 +1000, Nicholas Piggin wrote:
> POWER9 hypervisors will not necessarily run guest threads together on
> the same core at the same time, so msgsndp should not be used.

Maybe we shouldn't advertise doorbells at all ?

> Signed-off-by: Nicholas Piggin <npig...@gmail.com>
> ---
>  arch/powerpc/platforms/pseries/smp.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/platforms/pseries/smp.c
> b/arch/powerpc/platforms/pseries/smp.c
> index f6f83aeccaaa..1fa08155206b 100644
> --- a/arch/powerpc/platforms/pseries/smp.c
> +++ b/arch/powerpc/platforms/pseries/smp.c
> @@ -200,7 +200,12 @@ static __init void pSeries_smp_probe(void)
>  {
>       xics_smp_probe();
>  
> -     if (cpu_has_feature(CPU_FTR_DBELL)) {
> +     /*
> +      * POWER9 can not use msgsndp doorbells for IPI because
> thread
> +      * siblings do not necessarily run on physical cores at the
> same
> +      * time. This could be enabled for pHyp.
> +      */
> +     if (cpu_has_feature(CPU_FTR_DBELL) &&
> !cpu_has_feature(CPU_FTR_ARCH_300)) {
>               xics_cause_ipi = smp_ops->cause_ipi;
>               smp_ops->cause_ipi = pSeries_cause_ipi_mux;
>       }

Reply via email to