[Skiboot] [PATCH-RESEND] capi: Disable CAPP virtual machines
Andrew Donnellan
andrew.donnellan at au1.ibm.com
Thu Jan 18 15:38:41 AEDT 2018
On 18/01/18 15:09, Vaibhav Jain wrote:
> When exercising more than one CAPI accelerators simultaneously in
> cache coherency mode, the verification team is seeing a deadlock. To
> fix this a workaround of disabling CAPP virtual machines is
> suggested. These 'virtual machines' let PSL queue multiple CAPP
> commands for servicing by CAPP there by increasing
> throughput. Below is the error scenario described by the h/w team:
>
> " With virtual machines enabled we had a deadlock scenario where with 2
> or more CAPI's in a system you could get in a deadlock scenario due to
> cast-outs that are required break the deadlock (evict lines that
> another CAPI is requesting) get stuck in the virtual machine queue by
> a command ahead of it that is being retried by the same scenario in
> the other CAPI. "
>
> So this patch updates CAPP APC Master Powerbus control
> register during CAPP init to also set Bit(12) that disables CAPP
> virtual machines. This forces processing of CAPP commands from PSL one
> at a time and thereby preventing above mentioned deadlock scenario.
>
> Signed-off-by: Vaibhav Jain <vaibhav at linux.vnet.ibm.com>
Thanks for the description - that makes a lot more sense.
Should this be heading to stable?
Reviewed-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
> ---
> Change-log:
> Resend -> Updated the patch description with more info CAPP virtual
> machines and the error scenario.
> ---
> hw/phb4.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/phb4.c b/hw/phb4.c
> index ff912e1f..8e660b66 100644
> --- a/hw/phb4.c
> +++ b/hw/phb4.c
> @@ -3581,6 +3581,7 @@ static void phb4_init_capp_regs(struct phb4 *p, uint32_t capp_eng)
> xscom_read(p->chip_id, APC_MASTER_PB_CTRL + offset, ®);
> reg |= PPC_BIT(0); /* enable cResp exam */
> reg |= PPC_BIT(3); /* disable vg not sys */
> + reg |= PPC_BIT(12);/* HW417025: disable capp virtual machines */
> if (p->rev == PHB4_REV_NIMBUS_DD10) {
> reg |= PPC_BIT(1);
> } else {
>
--
Andrew Donnellan OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com IBM Australia Limited
More information about the Skiboot
mailing list