[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