[PATCH] drm/xe: Mark ComputeCS read mode as UC on iGPU
Summers, Stuart
stuart.summers at intel.com
Mon Jan 13 23:57:31 UTC 2025
On Thu, 2024-12-12 at 15:46 -0800, Matthew Brost wrote:
> RING_CMD_CCTL read index should be UC on iGPU parts due to L3 caching
> structure. Having this as WB blocks ULLS from being enabled. Change
> to
> UC to unblock ULLS on iGPU.
>
> Cc: Balasubramani Vivekanandan <balasubramani.vivekanandan at intel.com>
> Cc: Michal Mrozek <michal.mrozek at intel.com>
> Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>
> Cc: José Roberto de Souza <jose.souza at intel.com>
> Cc: stable at vger.kernel.org
> Fixes: 328e089bfb37 ("drm/xe: Leverage ComputeCS read L3 caching")
> Signed-off-by: Matthew Brost <matthew.brost at intel.com>
> ---
> drivers/gpu/drm/xe/xe_hw_engine.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c
> b/drivers/gpu/drm/xe/xe_hw_engine.c
> index b19366744148..cc258b2a77c9 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine.c
> +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
> @@ -417,9 +417,14 @@ hw_engine_setup_default_state(struct
> xe_hw_engine *hwe)
> * entry is recommended by the spec in certain circumstances
> on
> * specific platforms.
> * Bspec: 72161
> + *
> + * XXX: According to internal communications bspec is wrong
> and
Can you remove this reference to "internal communications"? It looks
like from the latest in bspec this is pretty clear.
I do see one test regressing on LNL, can you double check that this
isn't related to the caching change before we merge this?
Otherwise lgtm
Thanks,
Stuart
> + * RING_CMD_CCTL read index should be UC on iGPU parts due to
> L3 caching
> + * structure. Having this as WB blocks ULLS from being
> enabled. Add
> + * bspec link or delete this comment once bspec is updated.
> */
> const u8 mocs_write_idx = gt->mocs.uc_index;
> - const u8 mocs_read_idx = hwe->class ==
> XE_ENGINE_CLASS_COMPUTE &&
> + const u8 mocs_read_idx = hwe->class ==
> XE_ENGINE_CLASS_COMPUTE && IS_DGFX(xe) &&
> (GRAPHICS_VER(xe) >= 20 || xe-
> >info.platform == XE_PVC) ?
> gt->mocs.wb_index : gt-
> >mocs.uc_index;
> u32 ring_cmd_cctl_val =
> REG_FIELD_PREP(CMD_CCTL_WRITE_OVERRIDE_MASK, mocs_write_idx) |
More information about the Intel-xe
mailing list