diff mbox series

[v2] xive: Disable block tracker

Message ID 92f8d6f42dbe4b602a00c2b70becbe5faea014ae.camel@kernel.crashing.org
State Accepted
Headers show
Series [v2] xive: Disable block tracker | expand

Checks

Context Check Description
snowpatch_ozlabs/apply_patch success master/apply_patch Successfully applied
snowpatch_ozlabs/make_check success Test make_check on branch master

Commit Message

Benjamin Herrenschmidt Aug. 1, 2018, 2:02 p.m. UTC
Due to some HW errata, the block tracking facility (performance optimisation
for large systems) should be disabled on Nimbus chips. Disable it unconditionally
for now.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
v2. Fix typo in comment

Comments

Cédric Le Goater Aug. 1, 2018, 2:36 p.m. UTC | #1
On 08/01/2018 04:02 PM, Benjamin Herrenschmidt wrote:
> Due to some HW errata, the block tracking facility (performance optimisation
> for large systems) should be disabled on Nimbus chips. Disable it unconditionally
> for now.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

As I understand it, this feature is tightly coupled with the update
of the block scope tables which track which XIVE blocks are active 
in which chips. 

The current XIVE configuration is set to "one block per chip" and 
the chip id is used as a block identifier. The block scope table 
are not used and not even initialized by skiboot.


Reviewed-by: Cédric Le Goater <clg@kaod.org>


C.

> ---
> v2. Fix typo in comment
> 
> --- a/hw/xive.c
> +++ b/hw/xive.c
> @@ -1762,9 +1762,11 @@ static bool xive_config_init(struct xive *x)
>  	val |= VC_SBC_CONF_NO_UPD_PRF;
>  	xive_regw(x, VC_SBC_CONFIG, val);
>  
> -	/* Enable block tracking */
> +	/* Disable block tracking on Nimbus (we may want to enable
> +	 * it on Cumulus later). HW Erratas.
> +	 */
>  	val = xive_regr(x, PC_TCTXT_TRACK);
> -	val |= PC_TCTXT_TRACK_EN;
> +	val &= ~PC_TCTXT_TRACK_EN;
>  	xive_regw(x, PC_TCTXT_TRACK, val);
>  
>  	/* Enable relaxed ordering of trigger forwarding */
> 
> _______________________________________________
> Skiboot mailing list
> Skiboot@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/skiboot
>
Stewart Smith Aug. 2, 2018, 8:32 a.m. UTC | #2
Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
> Due to some HW errata, the block tracking facility (performance optimisation
> for large systems) should be disabled on Nimbus chips. Disable it unconditionally
> for now.
>
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> v2. Fix typo in comment

Merged to master as of 7db7c9f652295a47b7fed0fb62787ab795216a18

and running through tests for 6.0.x now.
diff mbox series

Patch

--- a/hw/xive.c
+++ b/hw/xive.c
@@ -1762,9 +1762,11 @@  static bool xive_config_init(struct xive *x)
 	val |= VC_SBC_CONF_NO_UPD_PRF;
 	xive_regw(x, VC_SBC_CONFIG, val);
 
-	/* Enable block tracking */
+	/* Disable block tracking on Nimbus (we may want to enable
+	 * it on Cumulus later). HW Erratas.
+	 */
 	val = xive_regr(x, PC_TCTXT_TRACK);
-	val |= PC_TCTXT_TRACK_EN;
+	val &= ~PC_TCTXT_TRACK_EN;
 	xive_regw(x, PC_TCTXT_TRACK, val);
 
 	/* Enable relaxed ordering of trigger forwarding */