[Intel-xe] [PATCH 1/1] fixup! drm/xe: standardize vm-less kernel submissions

Matthew Brost matthew.brost at intel.com
Tue Dec 5 17:22:16 UTC 2023


On Tue, Dec 05, 2023 at 04:00:30PM -0800, Daniele Ceraolo Spurio wrote:
> VM-less permanent queues exists for the whole lifetime of the driver, so
> they can't hold a wakeref. Given that these queues are never
> disabled/deregistered and should never hang, we don't expect any G2H
> messages outside of the submission flow and therefore we don't need the
> extra ref at all as long as the driver makes sure to hold a wakeref when
> submitting.
> 
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Matthew Brost <matthew.brost at intel.com>

Good fix.

Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_exec_queue.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
> index cb284c4ad049..85574740bc1e 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.c
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.c
> @@ -95,7 +95,7 @@ static struct xe_exec_queue *__xe_exec_queue_create(struct xe_device *xe,
>  	 * can perform GuC CT actions when needed. Caller is expected to have
>  	 * already grabbed the rpm ref outside any sensitive locks.
>  	 */
> -	if (q->flags & EXEC_QUEUE_FLAG_VM || !vm)
> +	if (!(q->flags & EXEC_QUEUE_FLAG_PERMANENT) && (q->flags & EXEC_QUEUE_FLAG_VM || !vm))
>  		drm_WARN_ON(&xe->drm, !xe_device_mem_access_get_if_ongoing(xe));
>  
>  	return q;
> @@ -172,7 +172,7 @@ void xe_exec_queue_fini(struct xe_exec_queue *q)
>  
>  	for (i = 0; i < q->width; ++i)
>  		xe_lrc_finish(q->lrc + i);
> -	if (q->flags & EXEC_QUEUE_FLAG_VM || !q->vm)
> +	if (!(q->flags & EXEC_QUEUE_FLAG_PERMANENT) && (q->flags & EXEC_QUEUE_FLAG_VM || !q->vm))
>  		xe_device_mem_access_put(gt_to_xe(q->gt));
>  	if (q->vm)
>  		xe_vm_put(q->vm);
> -- 
> 2.43.0
> 


More information about the Intel-xe mailing list