[Intel-xe] [PATCH 1/2 v3] drm/xe: Add infrastructure for per engine tuning

Matt Roper matthew.d.roper at intel.com
Thu Aug 24 20:05:38 UTC 2023


On Wed, Aug 23, 2023 at 12:55:32PM -0700, Matt Atwood wrote:
> Add the infrastructure that allows for per engine tuning preparation for
> disable indirect state.

I don't think we need this patch; there's nothing terribly complicated
here so we might as well just squash it directly into the next patch
that starts adding some entries.

> 
> v3: rebase
> 
> Signed-off-by: Matt Atwood <matthew.s.atwood at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_hw_engine.c |  2 ++
>  drivers/gpu/drm/xe/xe_tuning.c    | 12 ++++++++++++
>  drivers/gpu/drm/xe/xe_tuning.h    |  1 +
>  3 files changed, 15 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
> index dd673a684b70..9dafc56d5fe8 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine.c
> +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
> @@ -24,6 +24,7 @@
>  #include "xe_reg_sr.h"
>  #include "xe_rtp.h"
>  #include "xe_sched_job.h"
> +#include "xe_tuning.h"
>  #include "xe_wa.h"
>  
>  #define MAX_MMIO_BASES 3
> @@ -401,6 +402,7 @@ static void hw_engine_init_early(struct xe_gt *gt, struct xe_hw_engine *hwe,
>  	}
>  
>  	xe_reg_sr_init(&hwe->reg_sr, hwe->name, gt_to_xe(gt));
> +	xe_tuning_process_engine(gt);
>  	xe_wa_process_engine(hwe);
>  	hw_engine_setup_default_state(hwe);
>  
> diff --git a/drivers/gpu/drm/xe/xe_tuning.c b/drivers/gpu/drm/xe/xe_tuning.c
> index 412e59de9842..702cb41dab53 100644
> --- a/drivers/gpu/drm/xe/xe_tuning.c
> +++ b/drivers/gpu/drm/xe/xe_tuning.c
> @@ -27,6 +27,10 @@ static const struct xe_rtp_entry_sr gt_tunings[] = {
>  	{}
>  };
>  
> +static const struct xe_rtp_entry_sr engine_tunings[] = {
> +	{}
> +};
> +
>  static const struct xe_rtp_entry_sr lrc_tunings[] = {
>  	{ XE_RTP_NAME("Tuning: ganged timer, also known as 16011163337"),
>  	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210)),
> @@ -65,6 +69,14 @@ void xe_tuning_process_gt(struct xe_gt *gt)
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt);
>  
> +void xe_tuning_process_engine(struct xe_gt *gt)
> +{
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
> +
> +	xe_rtp_process_to_sr(&ctx, engine_tunings, &gt->reg_sr);
> +}

It looks like you may have copied the GT function but forgot to update
it for engine usage?


Matt

> +EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_engine);
> +
>  /**
>   * xe_tuning_process_lrc - process lrc tunings
>   * @hwe: engine instance to process tunings for
> diff --git a/drivers/gpu/drm/xe/xe_tuning.h b/drivers/gpu/drm/xe/xe_tuning.h
> index 2b95b0c8effc..740cb1bd2f0a 100644
> --- a/drivers/gpu/drm/xe/xe_tuning.h
> +++ b/drivers/gpu/drm/xe/xe_tuning.h
> @@ -10,6 +10,7 @@ struct xe_gt;
>  struct xe_hw_engine;
>  
>  void xe_tuning_process_gt(struct xe_gt *gt);
> +void xe_tuning_process_engine(struct xe_gt *gt);
>  void xe_tuning_process_lrc(struct xe_hw_engine *hwe);
>  
>  #endif
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list