[Intel-gfx] [PATCH] drm/1915/guc: enable engine reset on CAT

John Harrison john.c.harrison at intel.com
Fri Oct 14 20:21:16 UTC 2022


On 10/13/2022 09:14, Andrzej Hajda wrote:
> In case of catastrophic errors GuC is able to initate engine
> reset immediately, instead of waiting for timeout.
>
> Signed-off-by: Andrzej Hajda <andrzej.hajda at intel.com>
> ---
> Hi all,
>
> I am new in the subject, so please be polite if this is mistake.
> Tests shows that it allows to save about 7 seconds on the machine
> (Raptor Lake) in case of CAT.
> I am not aware of scenario in which would be reasonable to keep
> the engine in hung state.
> On the other side I am not sure if there should not be constraints
> on firmware version.
Technically there is. The feature was added in GuC v67. At present the 
earliest supported firmware version is 69 so it won't actually cause a 
break (or at least, not a new break). However, there is a task in 
progress to re-add support for v62 because 62 is out in the wild. So 
this change should really be wrapped with:
         if (GET_UC_VER(guc) >= MAKE_UC_VER(67, 0, 0))

There is also a potential impact for SRIOV customers. If one KMD wants 
reset-on-fault but another KMD (e.g. Windows) does not, that would be a 
problem. Will need to discuss this with the Windows team.

John.

>
> Regards
> Andrzej
> ---
>   drivers/gpu/drm/i915/gt/uc/intel_guc.c      | 2 +-
>   drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 1 +
>   2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> index 27b09ba1d295fc..2adcdf13db1911 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> @@ -211,7 +211,7 @@ static u32 guc_ctl_debug_flags(struct intel_guc *guc)
>   
>   static u32 guc_ctl_feature_flags(struct intel_guc *guc)
>   {
> -	u32 flags = 0;
> +	u32 flags = GUC_CTL_ENABLE_ENGINE_RESET_ON_CAT;
>   
>   	if (!intel_guc_submission_is_used(guc))
>   		flags |= GUC_CTL_DISABLE_SCHEDULER;
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
> index e7a7fb450f442a..96f3116e263cdf 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
> @@ -109,6 +109,7 @@
>   
>   #define GUC_CTL_FEATURE			2
>   #define   GUC_CTL_ENABLE_SLPC		BIT(2)
> +#define   GUC_CTL_ENABLE_ENGINE_RESET_ON_CAT BIT(8)
>   #define   GUC_CTL_DISABLE_SCHEDULER	BIT(14)
>   
>   #define GUC_CTL_DEBUG			3



More information about the Intel-gfx mailing list