[Intel-xe] [PATCH 1/6] drm/xe: common function to assign queue name

Matt Roper matthew.d.roper at intel.com
Wed Aug 16 22:31:06 UTC 2023


On Wed, Aug 16, 2023 at 11:04:20AM -0700, Daniele Ceraolo Spurio wrote:
> The queue name assignment is identical in both GuC and execlists
> backends, so we can move it to a common function. This will make adding
> a new entry in the next patch slightly cleaner.
> 
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_exec_queue.c | 23 +++++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_exec_queue.h |  1 +
>  drivers/gpu/drm/xe/xe_execlist.c   | 20 +-------------------
>  drivers/gpu/drm/xe/xe_guc_submit.c | 20 +-------------------
>  4 files changed, 26 insertions(+), 38 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
> index 382a572746ad..bf40154ddd6f 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.c
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.c
> @@ -177,6 +177,29 @@ void xe_exec_queue_fini(struct xe_exec_queue *q)
>  	kfree(q);
>  }
>  
> +void xe_exec_queue_assign_name(struct xe_exec_queue *q, u32 instance)
> +{
> +	switch (q->class) {
> +	case XE_ENGINE_CLASS_RENDER:
> +		sprintf(q->name, "rcs%d", instance);
> +		break;
> +	case XE_ENGINE_CLASS_VIDEO_DECODE:
> +		sprintf(q->name, "vcs%d", instance);
> +		break;
> +	case XE_ENGINE_CLASS_VIDEO_ENHANCE:
> +		sprintf(q->name, "vecs%d", instance);
> +		break;
> +	case XE_ENGINE_CLASS_COPY:
> +		sprintf(q->name, "bcs%d", instance);
> +		break;
> +	case XE_ENGINE_CLASS_COMPUTE:
> +		sprintf(q->name, "ccs%d", instance);
> +		break;
> +	default:
> +		XE_WARN_ON(q->class);
> +	}
> +}
> +
>  struct xe_exec_queue *xe_exec_queue_lookup(struct xe_file *xef, u32 id)
>  {
>  	struct xe_exec_queue *q;
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.h b/drivers/gpu/drm/xe/xe_exec_queue.h
> index 024bc26a7006..ce1ec2243b6a 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.h
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.h
> @@ -23,6 +23,7 @@ struct xe_exec_queue *xe_exec_queue_create_class(struct xe_device *xe, struct xe
>  
>  void xe_exec_queue_fini(struct xe_exec_queue *q);
>  void xe_exec_queue_destroy(struct kref *ref);
> +void xe_exec_queue_assign_name(struct xe_exec_queue *q, u32 instance);
>  
>  struct xe_exec_queue *xe_exec_queue_lookup(struct xe_file *xef, u32 id);
>  
> diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
> index 8ef98c7fd8e2..a4757817b1ac 100644
> --- a/drivers/gpu/drm/xe/xe_execlist.c
> +++ b/drivers/gpu/drm/xe/xe_execlist.c
> @@ -352,25 +352,7 @@ static int execlist_exec_queue_init(struct xe_exec_queue *q)
>  	q->execlist = exl;
>  	q->entity = &exl->entity;
>  
> -	switch (q->class) {
> -	case XE_ENGINE_CLASS_RENDER:
> -		sprintf(q->name, "rcs%d", ffs(q->logical_mask) - 1);
> -		break;
> -	case XE_ENGINE_CLASS_VIDEO_DECODE:
> -		sprintf(q->name, "vcs%d", ffs(q->logical_mask) - 1);
> -		break;
> -	case XE_ENGINE_CLASS_VIDEO_ENHANCE:
> -		sprintf(q->name, "vecs%d", ffs(q->logical_mask) - 1);
> -		break;
> -	case XE_ENGINE_CLASS_COPY:
> -		sprintf(q->name, "bcs%d", ffs(q->logical_mask) - 1);
> -		break;
> -	case XE_ENGINE_CLASS_COMPUTE:
> -		sprintf(q->name, "ccs%d", ffs(q->logical_mask) - 1);
> -		break;
> -	default:
> -		XE_WARN_ON(q->class);
> -	}
> +	xe_exec_queue_assign_name(q, ffs(q->logical_mask) - 1);
>  
>  	return 0;
>  
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
> index a1e1f2c86912..8f64b164987a 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -1165,25 +1165,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
>  
>  	mutex_unlock(&guc->submission_state.lock);
>  
> -	switch (q->class) {
> -	case XE_ENGINE_CLASS_RENDER:
> -		sprintf(q->name, "rcs%d", q->guc->id);
> -		break;
> -	case XE_ENGINE_CLASS_VIDEO_DECODE:
> -		sprintf(q->name, "vcs%d", q->guc->id);
> -		break;
> -	case XE_ENGINE_CLASS_VIDEO_ENHANCE:
> -		sprintf(q->name, "vecs%d", q->guc->id);
> -		break;
> -	case XE_ENGINE_CLASS_COPY:
> -		sprintf(q->name, "bcs%d", q->guc->id);
> -		break;
> -	case XE_ENGINE_CLASS_COMPUTE:
> -		sprintf(q->name, "ccs%d", q->guc->id);
> -		break;
> -	default:
> -		XE_WARN_ON(q->class);
> -	}
> +	xe_exec_queue_assign_name(q, q->guc->id);
>  
>  	trace_xe_exec_queue_create(q);
>  
> -- 
> 2.41.0
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list