[PATCH v2] drm/xe/vf: Skip attempt to start GuC PC if VF

Belgaumkar, Vinay vinay.belgaumkar at intel.com
Tue Jun 25 18:01:08 UTC 2024


On 6/22/2024 2:42 AM, Michal Wajdeczko wrote:
> We have already marked the GuC PC feature as not applicable for
> VF devices, but we missed the fact that there may be still some
> privileged activities performed by this component, who does much
> more than its name suggests.
>
> Explicitly skip xe_guc_pc_start() if running as a VF driver and
> use a GT oriented message to report any error.
>
> v2: also skip xe_guc_pc_stop (Vinay)

LGTM,

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

>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko 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 | 17 +++++++++++++----
>   1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index 172b65a50e31..eb655cee19f7 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -1113,7 +1113,13 @@ void xe_guc_reset_wait(struct xe_guc *guc)
>   
>   void xe_guc_stop_prepare(struct xe_guc *guc)
>   {
> -	XE_WARN_ON(xe_guc_pc_stop(&guc->pc));
> +	if (!IS_SRIOV_VF(guc_to_xe(guc))) {
> +		int err;
> +
> +		err = xe_guc_pc_stop(&guc->pc);
> +		xe_gt_WARN(guc_to_gt(guc), err, "Failed to stop GuC PC: %pe\n",
> +			   ERR_PTR(err));
> +	}
>   }
>   
>   void xe_guc_stop(struct xe_guc *guc)
> @@ -1125,10 +1131,13 @@ void xe_guc_stop(struct xe_guc *guc)
>   
>   int xe_guc_start(struct xe_guc *guc)
>   {
> -	int ret;
> +	if (!IS_SRIOV_VF(guc_to_xe(guc))) {
> +		int err;
>   
> -	ret = xe_guc_pc_start(&guc->pc);
> -	XE_WARN_ON(ret);
> +		err = xe_guc_pc_start(&guc->pc);
> +		xe_gt_WARN(guc_to_gt(guc), err, "Failed to start GuC PC: %pe\n",
> +			   ERR_PTR(err));
> +	}
>   
>   	return xe_guc_submit_start(guc);
>   }


More information about the Intel-xe mailing list