[Intel-gfx] [PATCH v4 1/1] drm/i915/gt: Initialize reserved and unspecified MOCS indices

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Mon Oct 12 14:53:05 UTC 2020


Quoting Ayaz A Siddiqui (2020-07-29 13:25:39)
> In order to avoid functional breakage of mis-programmed applications that
> have grown to depend on unused MOCS entries, we are programming
> those entries to be equal to fully cached ("L3 + LLC") entry.
> 
> These reserved and unspecified entries should not be used as they may be
> changed to less performant variants with better coherency in the future
> if more entries are needed.
> 
> V2: As suggested by Lucas De Marchi to utilise __init_mocs_table for
> programming default value, setting I915_MOCS_PTE index of tgl_mocs_table
> with desired value.
> 
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> Cc: Tomasz Lis <tomasz.lis at intel.com>
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: Francisco Jerez <currojerez at riseup.net>
> Cc: Mathew Alwin <alwin.mathew at intel.com>
> Cc: Mcguire Russell W <russell.w.mcguire at intel.com>
> Cc: Spruit Neil R <neil.r.spruit at intel.com>
> Cc: Zhou Cheng <cheng.zhou at intel.com>
> Cc: Benemelis Mike G <mike.g.benemelis at intel.com>
> 
> Signed-off-by: Ayaz A Siddiqui <ayaz.siddiqui at intel.com>
> Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>

Acked-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

Regards, Joonas

> ---
>  drivers/gpu/drm/i915/gt/intel_mocs.c | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c b/drivers/gpu/drm/i915/gt/intel_mocs.c
> index 632e08a4592b..f5dde723f612 100644
> --- a/drivers/gpu/drm/i915/gt/intel_mocs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
> @@ -234,11 +234,17 @@ static const struct drm_i915_mocs_entry broxton_mocs_table[] = {
>                    L3_1_UC)
>  
>  static const struct drm_i915_mocs_entry tgl_mocs_table[] = {
> -       /* Base - Error (Reserved for Non-Use) */
> -       MOCS_ENTRY(0, 0x0, 0x0),
> -       /* Base - Reserved */
> -       MOCS_ENTRY(1, 0x0, 0x0),
>  
> +       /* NOTE:
> +        * Reserved and unspecified MOCS indices have been set to (L3 + LCC).
> +        * These reserved entries should never be used, they may be changed
> +        * to low performant variants with better coherency in the future if
> +        * more entries are needed. We are programming index I915_MOCS_PTE(1)
> +        * only, __init_mocs_table() take care to program unused index with
> +        * this entry.
> +        */
> +       MOCS_ENTRY(1, LE_3_WB | LE_TC_1_LLC | LE_LRUM(3),
> +                  L3_3_WB),
>         GEN11_MOCS_ENTRIES,
>  
>         /* Implicitly enable L1 - HDC:L1 + L3 + LLC */
> @@ -265,6 +271,7 @@ static const struct drm_i915_mocs_entry tgl_mocs_table[] = {
>         MOCS_ENTRY(61,
>                    LE_1_UC | LE_TC_1_LLC,
>                    L3_3_WB),
> +
>  };
>  
>  static const struct drm_i915_mocs_entry icl_mocs_table[] = {
> -- 
> 2.26.2
> 


More information about the Intel-gfx mailing list