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; > }