[Intel-xe] [PATCH] drm/xe/slpc: Start SLPC before GuC submission on reset

Belgaumkar, Vinay vinay.belgaumkar at intel.com
Wed Jun 28 18:13:05 UTC 2023


On 6/27/2023 5:16 PM, Daniele Ceraolo Spurio wrote:
> The SLPC code has a strict 5ms timeout from when the start command is
> queued to when we expect the reply to appear in memory. This works if
> the CT channel is empty, but if the channel is busy there might be an
> extra delay that causes the process to exceeded the timeout. We see
> this issue when a reset occurs while userspace keeps submitting,
> because the submission code is re-enabled first and it will start using
> the channel to service those submissions.
> To fix this, we can simply start SLPC before re-enabling submission.
> This has also the benefit of not allowing submissions to go through with
> an uninitialized SLPC.
>
> Reference: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/375
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Vinay Belgaumkar <vinay.belgaumkar at intel.com>
> Cc: Matthew Brost <matthew.brost at intel.com>
> ---
>   drivers/gpu/drm/xe/xe_guc.c | 6 +-----
>   1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index 43f862aaacbe..8a9857c78309 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -802,14 +802,10 @@ int xe_guc_start(struct xe_guc *guc)
>   {
>   	int ret;
>   
> -	ret = xe_guc_submit_start(guc);
> -	if (ret)
> -		return ret;
> -
>   	ret = xe_guc_pc_start(&guc->pc);
>   	XE_WARN_ON(ret);
>   
> -	return 0;
> +	return xe_guc_submit_start(guc);;

LGTM,

Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>


>   }
>   
>   void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p)


More information about the Intel-xe mailing list