On Sun, 10 Jun 2018 23:30:27 +1000 Nicholas Piggin <npig...@gmail.com> wrote:
> POWER9 DD1 was never a product. It is no longer supported by upstream > firmware, and it is not effectively supported in Linux due to lack of > testing. > > diff --git a/arch/powerpc/kvm/book3s_xive_template.c > b/arch/powerpc/kvm/book3s_xive_template.c index > 99c3620b40d9..487f1f6650cc 100644 --- > a/arch/powerpc/kvm/book3s_xive_template.c +++ > b/arch/powerpc/kvm/book3s_xive_template.c @@ -25,18 +25,6 @@ static > void GLUE(X_PFX,ack_pending)(struct kvmppc_xive_vcpu *xc) */ > eieio(); > > - /* > - * DD1 bug workaround: If PIPR is less favored than CPPR > - * ignore the interrupt or we might incorrectly lose an IPB > - * bit. > - */ > - if (cpu_has_feature(CPU_FTR_POWER9_DD1)) { > - __be64 qw1 = __x_readq(__x_tima + TM_QW1_OS); > - u8 pipr = be64_to_cpu(qw1) & 0xff; > - if (pipr >= xc->hw_cppr) > - return; > - } > - > /* Perform the acknowledge OS to register cycle. */ > ack = be16_to_cpu(__x_readw(__x_tima + TM_SPC_ACK_OS_REG)); > > @@ -105,7 +93,7 @@ static void GLUE(X_PFX,source_eoi)(u32 hw_irq, > struct xive_irq_data *xd) * > * For LSIs, using the HW EOI cycle works around a > problem > * on P9 DD1 PHBs where the other ESB accesses don't > work > - * properly. > + * properly. XXX: can this be removed? > */ > if (xd->flags & XIVE_IRQ_FLAG_LSI) > __x_readq(__x_eoi_page(xd) + Maybe this should be really removed or the comment changed to why it is still useful? Thanks Michal