All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Brost <matthew.brost@intel.com>
To: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: intel-xe@lists.freedesktop.org
Subject: Re: [Intel-xe] [PATCH] drm/xe: Use BO's GT to determine dma_offset when programming PTEs
Date: Thu, 23 Mar 2023 16:13:28 +0000	[thread overview]
Message-ID: <ZBx6qIqgr8vFNHo0@DUT025-TGLU.fm.intel.com> (raw)
In-Reply-To: <7263840f-3315-af68-c5bb-db8074bfb41b@linux.intel.com>

On Thu, Mar 23, 2023 at 10:21:12AM +0100, Thomas Hellström wrote:
> Hi.
> 
> Good catch. Some comments below.
> 
> On 3/23/23 09:15, Matthew Brost wrote:
> > Rather than using the passed in GT, use the BO's GT determine dma_offset
> > when programming PTEs as these two GT's could differ (i.e. mapping a BO
> > from a remote GT). The BO's GT is correct GT to use as this where BO
> > resides, while the passed in GT is where the mapping is created.
> > 
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > ---
> >   drivers/gpu/drm/xe/xe_bo.c | 5 +++++
> >   drivers/gpu/drm/xe/xe_bo.h | 1 +
> >   drivers/gpu/drm/xe/xe_pt.c | 4 +++-
> >   3 files changed, 9 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> > index 764b3ca9fff7..8beb35aa6f15 100644
> > --- a/drivers/gpu/drm/xe/xe_bo.c
> > +++ b/drivers/gpu/drm/xe/xe_bo.c
> > @@ -79,6 +79,11 @@ mem_type_to_gt(struct xe_device *xe, u32 mem_type)
> >   	return xe_device_get_gt(xe, mem_type == XE_PL_STOLEN ? 0 : (mem_type - XE_PL_VRAM0));
> >   }
> > +struct xe_gt *xe_bo_to_gt(struct xe_bo *bo)
> 
> Kerneldoc.
> 

Will do.

> > +{
> XE_WARN_ON_ONCE(!vram) ?

mem_type_to_gt has a BUG_ON for this.

> > +	return mem_type_to_gt(xe_bo_device(bo), bo->ttm.resource->mem_type);
> > +}
> > +
> >   static void try_add_system(struct xe_bo *bo, struct ttm_place *places,
> >   			   u32 bo_flags, u32 *c)
> >   {
> > diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> > index f4303810f213..f9abd8036417 100644
> > --- a/drivers/gpu/drm/xe/xe_bo.h
> > +++ b/drivers/gpu/drm/xe/xe_bo.h
> > @@ -105,6 +105,7 @@ struct xe_bo *xe_bo_create_from_data(struct xe_device *xe, struct xe_gt *gt,
> >   int xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
> >   			      u32 bo_flags);
> Newline.

Sure.

Matt

> > +struct xe_gt *xe_bo_to_gt(struct xe_bo *bo);
> >   static inline struct xe_bo *ttm_to_xe_bo(const struct ttm_buffer_object *bo)
> >   {
> > diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> > index a2e586ebd9a8..6dc31b030687 100644
> > --- a/drivers/gpu/drm/xe/xe_pt.c
> > +++ b/drivers/gpu/drm/xe/xe_pt.c
> > @@ -792,10 +792,12 @@ xe_pt_stage_bind(struct xe_gt *gt, struct xe_vma *vma,
> >   	int ret;
> >   	if (is_vram) {
> > +		struct xe_gt *bo_gt = xe_bo_to_gt(bo);
> > +
> >   		xe_walk.default_pte = GEN12_PPGTT_PTE_LM;
> >   		if (vma && vma->gpuva.flags & XE_VMA_ATOMIC_PTE_BIT)
> >   			xe_walk.default_pte |= GEN12_USM_PPGTT_PTE_AE;
> > -		xe_walk.dma_offset = gt->mem.vram.io_start -
> > +		xe_walk.dma_offset = bo_gt->mem.vram.io_start -
> >   			gt_to_xe(gt)->mem.vram.io_start;
> >   		xe_walk.cache = XE_CACHE_WB;
> >   	} else {
> 
> Thanks,
> 
> Thomas
> 
> 

      reply	other threads:[~2023-03-23 16:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-23  8:15 [Intel-xe] [PATCH] drm/xe: Use BO's GT to determine dma_offset when programming PTEs Matthew Brost
2023-03-23  8:17 ` [Intel-xe] ✗ CI.Patch_applied: failure for " Patchwork
2023-03-23  9:21 ` [Intel-xe] [PATCH] " Thomas Hellström
2023-03-23 16:13   ` Matthew Brost [this message]

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=ZBx6qIqgr8vFNHo0@DUT025-TGLU.fm.intel.com \
    --to=matthew.brost@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --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.