[PATCH 1/3] drm/i915/gt: Support fixed CCS mode

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Fri Dec 22 13:31:14 UTC 2023


Quoting Andi Shyti (2023-12-21 19:08:22)
> The CCS mode involves assigning CCS engines to slices depending
> on the number of slices and the number of engines the user wishes
> to set.
> 
> In this patch, the default CCS setting is established during the
> initial GT settings. It involves assigning only one CCS to all
> the slices.
> 
> Based on a patch by Chris Wilson <chris.p.wilson at linux.intel.com>
> and Tejas Upadhyay <tejas.upadhyay at intel.com>.
> 
> Signed-off-by: Andi Shyti <andi.shyti at linux.intel.com>
> Cc: Chris Wilson <chris.p.wilson at linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: Niranjana Vishwanathapura <niranjana.vishwanathapura at intel.com>
> Cc: Tejas Upadhyay <tejas.upadhyay at intel.com>

<SNIP>

> +++ b/drivers/gpu/drm/i915/gt/intel_gt_types.h
> @@ -207,6 +207,26 @@ struct intel_gt {
>                                             [MAX_ENGINE_INSTANCE + 1];
>         enum intel_submission_method submission_method;
>  
> +       /*
> +        * Track fixed mapping between CCS engines and compute slices.
> +        *
> +        * In order to w/a HW that has the inability to dynamically load
> +        * balance between CCS engines and EU in the compute slices, we have to
> +        * reconfigure a static mapping on the fly. We track the current CCS
> +        * configuration (determined by inspection of the user's engine
> +        * selection during execbuf) and compare it against the current
> +        * CCS_MODE (which maps CCS engines to compute slices).  If there is
> +        * only a single engine selected, we can map it to all available
> +        * compute slices for maximal single task performance (fast/narrow). If
> +        * there are more then one engine selected, we have to reduce the
> +        * number of slices allocated to each engine (wide/slow), fairly
> +        * distributing the EU between the equivalent engines.
> +        */

This comment is outdated as we don't consider execbuf but the sysfs
configuration.

Regards, Joonas

> +       struct {
> +               struct mutex mutex;
> +               u32 mode;
> +       } ccs;
> +
>         /*
>          * Default address space (either GGTT or ppGTT depending on arch).
>          *


More information about the dri-devel mailing list