From: Jean-Philippe Brucker <jean-philippe@linaro.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: "Tian, Kevin" <kevin.tian@intel.com>,
Baolu Lu <baolu.lu@linux.intel.com>,
Joerg Roedel <joro@8bytes.org>,
Christoph Hellwig <hch@infradead.org>,
"Raj, Ashok" <ashok.raj@intel.com>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Jean-Philippe Brucker <jean-philippe@linaro.com>,
"Jiang, Dave" <dave.jiang@intel.com>,
Vinod Koul <vkoul@kernel.org>, Eric Auger <eric.auger@redhat.com>,
"Liu, Yi L" <yi.l.liu@intel.com>,
"Pan, Jacob jun" <jacob.jun.pan@intel.com>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6 03/12] iommu: Add attach/detach_dev_pasid domain ops
Date: Thu, 12 May 2022 08:00:59 +0100 [thread overview]
Message-ID: <Ynywqxo4P+aEeS6c@myrica> (raw)
In-Reply-To: <20220511120240.GY49344@nvidia.com>
On Wed, May 11, 2022 at 09:02:40AM -0300, Jason Gunthorpe wrote:
> On Wed, May 11, 2022 at 08:54:39AM +0100, Jean-Philippe Brucker wrote:
> > > > > Then 'detach pasid' is:
> > > > >
> > > > > iommu_ops->blocking_domain->ops->attach_dev_pasid(domain, dev,
> > > > pasid);
> > > > >
> > > > > And we move away from the notion of 'detach' and in the direction that
> > > > > everything continuously has a domain set. PASID would logically
> > > > > default to blocking_domain, though we wouldn't track this anywhere.
> > > >
> > > > I am not sure whether we still need to keep the blocking domain concept
> > > > when we are entering the new PASID world. Please allow me to wait and
> > > > listen to more opinions.
> > > >
> > >
> > > I'm with Jason on this direction. In concept after a PASID is detached it's
> > > essentially blocked. Implementation-wise it doesn't prevent the iommu
> > > driver from marking the PASID entry as non-present as doing in this
> > > series instead of actually pointing to the empty page table of the block
> > > domain. But api-wise it does make the entire semantics more consistent.
> >
> > This is all internal to IOMMU so I don't think we should be concerned
> > about API consistency. I prefer a straighforward detach() operation
> > because that way IOMMU drivers don't have to keep track of which domain is
> > attached to which PASID. That code can be factored into the IOMMU core.
>
> Why would a driver need to keep additional tracking?
>
> > In addition to clearing contexts, detach() also needs to invalidate TLBs,
> > and for that the SMMU driver needs to know the old ASID (!= PASID) that
> > was used by the context descriptor. We can certainly work around a missing
> > detach() to implement this, but it will be convoluted.
>
> It is not "missing" it is just renamed to blocking_domain->ops->set_dev_pasid()
>
> The implementation of that function would be identical to
> detach_dev_pasid.
attach(dev, pasid, sva_domain)
detach(dev, pasid, sva_domain)
versus
set_dev_pasid(dev, pasid, sva_domain)
set_dev_pasid(dev, pasid, blocking)
we loose the information of the domain previously attached, and the SMMU
driver has to retrieve it to find the ASID corresponding to the mm.
Thanks,
Jean
next prev parent reply other threads:[~2022-05-12 7:01 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-10 6:17 [PATCH v6 00/12] iommu: SVA and IOPF refactoring Lu Baolu
2022-05-10 6:17 ` [PATCH v6 01/12] dmaengine: idxd: Separate user and kernel pasid enabling Lu Baolu
2022-05-10 6:17 ` [PATCH v6 02/12] iommu: Add pasid_bits field in struct dev_iommu Lu Baolu
2022-05-10 14:34 ` Jason Gunthorpe
2022-05-11 2:25 ` Baolu Lu
2022-05-11 8:00 ` Jean-Philippe Brucker
2022-05-11 11:59 ` Jason Gunthorpe
2022-05-10 6:17 ` [PATCH v6 03/12] iommu: Add attach/detach_dev_pasid domain ops Lu Baolu
2022-05-10 14:02 ` Jason Gunthorpe
2022-05-11 2:32 ` Baolu Lu
2022-05-11 4:09 ` Tian, Kevin
2022-05-11 7:54 ` Jean-Philippe Brucker
2022-05-11 12:02 ` Jason Gunthorpe
2022-05-12 7:00 ` Jean-Philippe Brucker [this message]
2022-05-12 11:51 ` Jason Gunthorpe
2022-05-16 2:03 ` Baolu Lu
2022-05-10 6:17 ` [PATCH v6 04/12] iommu/sva: Basic data structures for SVA Lu Baolu
2022-05-10 6:17 ` [PATCH v6 05/12] iommu/vt-d: Remove SVM_FLAG_SUPERVISOR_MODE support Lu Baolu
2022-05-10 14:35 ` Jason Gunthorpe
2022-05-10 6:17 ` [PATCH v6 06/12] iommu/vt-d: Add SVA domain support Lu Baolu
2022-05-10 6:17 ` [PATCH v6 07/12] arm-smmu-v3/sva: " Lu Baolu
2022-05-10 6:17 ` [PATCH v6 08/12] iommu/sva: Use attach/detach_pasid_dev in SVA interfaces Lu Baolu
2022-05-10 15:23 ` Jason Gunthorpe
2022-05-11 7:21 ` Baolu Lu
2022-05-11 14:53 ` Jason Gunthorpe
2022-05-12 3:02 ` Baolu Lu
2022-05-12 5:01 ` Tian, Kevin
2022-05-12 5:17 ` Baolu Lu
2022-05-12 5:44 ` Tian, Kevin
2022-05-12 6:16 ` Baolu Lu
2022-05-12 11:48 ` Jason Gunthorpe
2022-05-12 11:59 ` Baolu Lu
2022-05-12 12:03 ` Jason Gunthorpe
2022-05-12 12:47 ` Baolu Lu
2022-05-12 11:51 ` Jason Gunthorpe
2022-05-12 12:39 ` Baolu Lu
2022-05-10 6:17 ` [PATCH v6 09/12] iommu: Remove SVA related callbacks from iommu ops Lu Baolu
2022-05-10 6:17 ` [PATCH v6 10/12] iommu: Prepare IOMMU domain for IOPF Lu Baolu
2022-05-10 6:17 ` [PATCH v6 11/12] iommu: Per-domain I/O page fault handling Lu Baolu
2022-05-10 6:17 ` [PATCH v6 12/12] iommu: Rename iommu-sva-lib.{c,h} Lu Baolu
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=Ynywqxo4P+aEeS6c@myrica \
--to=jean-philippe@linaro.org \
--cc=ashok.raj@intel.com \
--cc=baolu.lu@linux.intel.com \
--cc=dave.jiang@intel.com \
--cc=eric.auger@redhat.com \
--cc=hch@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=jacob.jun.pan@intel.com \
--cc=jean-philippe@linaro.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=vkoul@kernel.org \
--cc=will@kernel.org \
--cc=yi.l.liu@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;
as well as URLs for NNTP newsgroup(s).