All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Brost <matthew.brost@intel.com>
To: Tejas Upadhyay <tejas.upadhyay@intel.com>
Cc: <intel-xe@lists.freedesktop.org>, <matthew.auld@intel.com>,
	<thomas.hellstrom@linux.intel.com>,
	<himal.prasad.ghimiray@intel.com>
Subject: Re: [RFC PATCH V7 04/10] drm/xe: Link LRC BO and its execution Queue
Date: Wed, 29 Apr 2026 20:34:21 -0700	[thread overview]
Message-ID: <afLNvfQRu69FgHyf@gsse-cloud1.jf.intel.com> (raw)
In-Reply-To: <20260416074958.3722666-16-tejas.upadhyay@intel.com>

On Thu, Apr 16, 2026 at 01:19:53PM +0530, Tejas Upadhyay wrote:
> To establish a link between an LRC BO (Logical Ring Context
> Buffer Object) and its corresponding execution Queue in the
> drm/xe driver, you need to store a back-pointer to the queue
> within the BO's private data structure. This allows the
> driver to identify and take corrective action on the specific
> queue if the LRC BO encounters an error (e.g., memory
> corruption or eviction issues).
> 
> Signed-off-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_bo_types.h   | 3 +++
>  drivers/gpu/drm/xe/xe_exec_queue.c | 1 +
>  2 files changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
> index 9d19940b8fc0..a647b775a65c 100644
> --- a/drivers/gpu/drm/xe/xe_bo_types.h
> +++ b/drivers/gpu/drm/xe/xe_bo_types.h
> @@ -20,6 +20,7 @@
>  struct xe_device;
>  struct xe_mem_pool_node;
>  struct xe_vm;
> +struct xe_exec_queue;
>  
>  #define XE_BO_MAX_PLACEMENTS	3
>  
> @@ -40,6 +41,8 @@ struct xe_bo {
>  	u32 flags;
>  	/** @vm: VM this BO is attached to, for extobj this will be NULL */
>  	struct xe_vm *vm;
> +	/** @q: Queue this BO is attached to, mostly for LRC BO, NULL otherwise */
> +	struct xe_exec_queue *q;
>  	/** @tile: Tile this BO is attached to (kernel BO only) */
>  	struct xe_tile *tile;
>  	/** @placements: valid placements for this BO */
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
> index 071b8c41df43..632c9603afc1 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.c
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.c
> @@ -386,6 +386,7 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q, u32 exec_queue_flags)
>  				goto err_lrc;
>  			}
>  
> +			lrc->bo->q = q;

I think we need a comment why this is safe.. Something like:

/*
 * The queue ref counts the LRCs, thus it safe for the LRC BO to hold a
 * pointer to queue without reference.
 */
lrc->bo->q = q;

Multi-q comes into play here... So I think the assignment
should actually be:

lrc->bo->q = xe_exec_queue_multi_queue_primary(q);

Then to be paranoid in xe_lrc_finish:

lrc->bo->q = NULL;

Before calling: xe_bo_unpin_map_no_vm(lrc->bo);

Matt

>  			xe_exec_queue_set_lrc(q, lrc, i);
>  
>  			if (__lrc)
> -- 
> 2.52.0
> 

  reply	other threads:[~2026-04-30  3:34 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-16  7:49 [RFC PATCH V7 00/10] Add memory page offlining support Tejas Upadhyay
2026-04-16  7:49 ` [RFC PATCH V7 01/10] drm/xe: Link VRAM object with gpu buddy Tejas Upadhyay
2026-04-16  7:49 ` [RFC PATCH V7 02/10] gpu/buddy: Integrate lockdep for gpu buddy manager Tejas Upadhyay
2026-04-16  8:55   ` Matthew Auld
2026-04-16  9:43     ` Upadhyay, Tejas
2026-04-16  9:56       ` Matthew Auld
2026-04-16 10:04         ` Upadhyay, Tejas
2026-04-16 10:15           ` Matthew Auld
2026-04-16 10:18             ` Upadhyay, Tejas
2026-04-16  7:49 ` [RFC PATCH V7 03/10] drm/gpu: Add gpu_buddy_allocated_addr_to_block helper Tejas Upadhyay
2026-04-16  7:49 ` [RFC PATCH V7 04/10] drm/xe: Link LRC BO and its execution Queue Tejas Upadhyay
2026-04-30  3:34   ` Matthew Brost [this message]
2026-05-04  9:11     ` Upadhyay, Tejas
2026-04-16  7:49 ` [RFC PATCH V7 05/10] drm/xe: Extend BO purge to handle vram pages as well Tejas Upadhyay
2026-04-30  3:44   ` Matthew Brost
2026-04-30 12:08     ` Upadhyay, Tejas
2026-05-05  8:15     ` Yadav, Arvind
2026-04-16  7:49 ` [RFC PATCH V7 06/10] drm/xe: Handle physical memory address error Tejas Upadhyay
2026-04-16  7:49 ` [RFC PATCH V7 07/10] drm/xe/cri: Add debugfs to inject faulty vram address Tejas Upadhyay
2026-04-16  7:49 ` [RFC PATCH V7 08/10] gpu/buddy: Add routine to dump allocated buddy blocks Tejas Upadhyay
2026-04-16  7:49 ` [RFC PATCH V7 09/10] drm/xe/configfs: Add vram bad page reservation policy Tejas Upadhyay
2026-05-08 10:14   ` Matthew Auld
2026-04-16  7:49 ` [RFC PATCH V7 10/10] drm/xe/cri: Add sysfs interface for bad gpu vram pages Tejas Upadhyay
2026-04-30 13:53   ` Matthew Auld
2026-05-04  9:02     ` Upadhyay, Tejas
2026-05-05  8:44       ` Matthew Auld
2026-05-06  5:18         ` Upadhyay, Tejas
2026-05-07  7:37         ` Upadhyay, Tejas
2026-05-07  9:49           ` Matthew Auld
2026-05-07 10:22             ` Upadhyay, Tejas
2026-04-16  7:56 ` ✗ CI.checkpatch: warning for Add memory page offlining support (rev8) Patchwork
2026-04-16  7:57 ` ✗ CI.KUnit: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=afLNvfQRu69FgHyf@gsse-cloud1.jf.intel.com \
    --to=matthew.brost@intel.com \
    --cc=himal.prasad.ghimiray@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=matthew.auld@intel.com \
    --cc=tejas.upadhyay@intel.com \
    --cc=thomas.hellstrom@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.