[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