Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Brost <matthew.brost@intel.com>
To: "Zeng, Oak" <oak.zeng@intel.com>
Cc: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH] drm/xe: Unmap userptr in MMU invalidation notifier
Date: Mon, 29 Apr 2024 17:18:01 +0000	[thread overview]
Message-ID: <Zi/WSRbYmpZtELhK@DUT025-TGLU.fm.intel.com> (raw)
In-Reply-To: <SA1PR11MB69916393B52812A5D25302D9921B2@SA1PR11MB6991.namprd11.prod.outlook.com>

On Mon, Apr 29, 2024 at 07:55:22AM -0600, Zeng, Oak wrote:
> Hi Matt
> 
> > -----Original Message-----
> > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of
> > Matthew Brost
> > Sent: Friday, April 26, 2024 7:33 PM
> > To: intel-xe@lists.freedesktop.org
> > Cc: Brost, Matthew <matthew.brost@intel.com>; Thomas Hellström
> > <thomas.hellstrom@linux.intel.com>; stable@vger.kernel.org
> > Subject: [PATCH] drm/xe: Unmap userptr in MMU invalidation notifier
> > 
> > To be secure, when a userptr is invalidated the pages should be dma
> > unmapped ensuring the device can no longer touch the invalidated pages.
> > 
> > Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
> > Fixes: 12f4b58a37f4 ("drm/xe: Use hmm_range_fault to populate user
> > pages")
> > Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> > Cc: stable@vger.kernel.org # 6.8
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > ---
> >  drivers/gpu/drm/xe/xe_vm.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> > index dfd31b346021..964a5b4d47d8 100644
> > --- a/drivers/gpu/drm/xe/xe_vm.c
> > +++ b/drivers/gpu/drm/xe/xe_vm.c
> > @@ -637,6 +637,9 @@ static bool vma_userptr_invalidate(struct
> > mmu_interval_notifier *mni,
> >  		XE_WARN_ON(err);
> >  	}
> > 
> > +	if (userptr->sg)
> > +		xe_hmm_userptr_free_sg(uvma);
> 
> Just some thoughts here. I think when we introduce system allocator, above should be made conditional. We should dma unmap userptr only for normal userptr but not for userptr created for system allocator (fault usrptr in the system allocator series). Because for system allocator the dma-unmapping would be part of the garbage collector and vma destroy process. Right?
> 

I don't think it should be conditional. In any case when a CPU address
is invalidated we need to ensure the dma mapping (IOMMU mapping) is
also invalid to ensure no path to the old (invalidate) pages exists.
This is an extra security that must be enforced. With removing the dma
mapping, in theory rouge accesses from the GPU could still access the
old pages.

Matt

> Oak 
> 
> > +
> >  	trace_xe_vma_userptr_invalidate_complete(vma);
> > 
> >  	return true;
> > --
> > 2.34.1
> 

  reply	other threads:[~2024-04-29 17:18 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-26 23:32 [PATCH] drm/xe: Unmap userptr in MMU invalidation notifier Matthew Brost
2024-04-26 23:37 ` ✓ CI.Patch_applied: success for " Patchwork
2024-04-26 23:37 ` ✓ CI.checkpatch: " Patchwork
2024-04-26 23:38 ` ✓ CI.KUnit: " Patchwork
2024-04-29  1:11 ` [PATCH] " Matthew Brost
2024-04-29 13:05   ` Thomas Hellström
2024-04-29 13:55 ` Zeng, Oak
2024-04-29 17:18   ` Matthew Brost [this message]
2024-04-30 15:11     ` Zeng, Oak
2024-04-30 15:42       ` Matthew Brost
2024-05-01  0:40         ` Zeng, Oak
  -- strict thread matches above, loose matches on Subject: below --
2024-04-30  3:00 Matthew Brost

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=Zi/WSRbYmpZtELhK@DUT025-TGLU.fm.intel.com \
    --to=matthew.brost@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=oak.zeng@intel.com \
    --cc=stable@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox