[PATCH 1/4] drm/xe/psmi: Add setting of PSMI feature flag

Matt Atwood matthew.s.atwood at intel.com
Thu Aug 21 17:24:01 UTC 2025


On Wed, Jul 16, 2025 at 01:55:44PM -0700, Lucas De Marchi wrote:
> PSMI allows to capture data from the GPU useful for early
> validation. From the kernel side there isn't much to be done, just a few
> things:
> 
> 	1) Toggle the feature support in GuC
> 	2) Enable some additional WAs
> 	3) Allocate buffers
> 
> Here is the first step, with the next ones to follow.
> 
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: John Harrison <John.C.Harrison at Intel.com>
> Original-author: Brian Welty <brian.welty at intel.com>
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
Reviewed-by: Matt Atwood <matthew.s.atwood at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_guc.c      | 3 +++
>  drivers/gpu/drm/xe/xe_guc_fwif.h | 1 +
>  drivers/gpu/drm/xe/xe_module.c   | 3 +++
>  drivers/gpu/drm/xe/xe_module.h   | 1 +
>  4 files changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index b1d1d6da37581..a117300501247 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -86,6 +86,9 @@ static u32 guc_ctl_feature_flags(struct xe_guc *guc)
>  	if (!guc_to_xe(guc)->info.skip_guc_pc)
>  		flags |= GUC_CTL_ENABLE_SLPC;
>  
> +	if (xe_modparam.enable_psmi)
> +		flags |= GUC_CTL_ENABLE_PSMI;
> +
>  	return flags;
>  }
>  
> diff --git a/drivers/gpu/drm/xe/xe_guc_fwif.h b/drivers/gpu/drm/xe/xe_guc_fwif.h
> index 6f57578b07cb0..2a5256c24b9d8 100644
> --- a/drivers/gpu/drm/xe/xe_guc_fwif.h
> +++ b/drivers/gpu/drm/xe/xe_guc_fwif.h
> @@ -107,6 +107,7 @@ struct guc_update_exec_queue_policy {
>  #define GUC_CTL_FEATURE			2
>  #define   GUC_CTL_ENABLE_SLPC		BIT(2)
>  #define   GUC_CTL_ENABLE_LITE_RESTORE	BIT(4)
> +#define   GUC_CTL_ENABLE_PSMI		BIT(7)
>  #define   GUC_CTL_DISABLE_SCHEDULER	BIT(14)
>  
>  #define GUC_CTL_DEBUG			3
> diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
> index 064093bf1adca..2e6ac082f7bee 100644
> --- a/drivers/gpu/drm/xe/xe_module.c
> +++ b/drivers/gpu/drm/xe/xe_module.c
> @@ -57,6 +57,9 @@ module_param_named(probe_display, xe_modparam.probe_display, bool, 0444);
>  MODULE_PARM_DESC(probe_display, "Probe display HW, otherwise it's left untouched "
>  		 "[default=" __stringify(DEFAULT_PROBE_DISPLAY) "])");
>  
> +module_param_named(enable_psmi, xe_modparam.enable_psmi, bool, 0444);
> +MODULE_PARM_DESC(enable_psmi, "Enable PSMI capture support");
> +
>  module_param_named(vram_bar_size, xe_modparam.force_vram_bar_size, int, 0600);
>  MODULE_PARM_DESC(vram_bar_size, "Set the vram bar size in MiB (<0=disable-resize, 0=max-needed-size, >0=force-size "
>  		 "[default=" __stringify(DEFAULT_VRAM_BAR_SIZE) "])");
> diff --git a/drivers/gpu/drm/xe/xe_module.h b/drivers/gpu/drm/xe/xe_module.h
> index 5a3bfea8b7b4c..a84af8eccb91d 100644
> --- a/drivers/gpu/drm/xe/xe_module.h
> +++ b/drivers/gpu/drm/xe/xe_module.h
> @@ -12,6 +12,7 @@
>  struct xe_modparam {
>  	bool force_execlist;
>  	bool probe_display;
> +	bool enable_psmi;
>  	u32 force_vram_bar_size;
>  	int guc_log_level;
>  	char *guc_firmware_path;
> 
> -- 
> 2.49.0
> 


More information about the Intel-xe mailing list