POWER9 hypervisors will not necessarily run guest threads together on the same core at the same time, so msgsndp should not be used.
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; } -- 2.11.0