From: Jason Gunthorpe <jgg@nvidia.com>
To: "Liu, Yi L" <yi.l.liu@intel.com>
Cc: Nicolin Chen <nicolinc@nvidia.com>,
Robin Murphy <robin.murphy@arm.com>,
"Tian, Kevin" <kevin.tian@intel.com>,
"eric.auger@redhat.com" <eric.auger@redhat.com>,
"baolu.lu@linux.intel.com" <baolu.lu@linux.intel.com>,
"shameerali.kolothum.thodi@huawei.com"
<shameerali.kolothum.thodi@huawei.com>,
"jean-philippe@linaro.org" <jean-philippe@linaro.org>,
"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
"peterx@redhat.com" <peterx@redhat.com>
Subject: Re: Cache Invalidation Solution for Nested IOMMU
Date: Mon, 3 Apr 2023 09:23:32 -0300 [thread overview]
Message-ID: <ZCrFRJEF3/oickfY@nvidia.com> (raw)
In-Reply-To: <DS0PR11MB7529BD4A1AE9E75E1408DA4BC3929@DS0PR11MB7529.namprd11.prod.outlook.com>
On Mon, Apr 03, 2023 at 07:26:28AM +0000, Liu, Yi L wrote:
> For VT-d, except for the device-TLB invalidation, there is no RID
> information in the invalidation command submitted by iommu driver.
> Device-TLB invalidation would be somehow an included operation in
> IOTLB invalidation if the page table is used by devices that has
> enabled ATS. So guest VT-d iommu driver may not use the Device-TLB
> invalidation. So vRID->pRID conversion may not happen for VT-d side.
It is the same as ARM, the RID translation is only needed to support
the ATS case.
> Domain_id is not global today. So if there are multiple vIOMMU instance
> exposed to guest, the vDomain_id would have conflict between the
> invalidation commands submitted via different vIOMMU instances.
You'd need to expose multiple physical instances as multiple virtual
instances.
> we may make its allocation global, I'm also curious when and how should
> we build up the vDomain_id->pDomain_id relationship in kernel. Maybe a
> new iommufd uapi just like the vRID set?
I'm not so sure it even works sensibly for VT-d. Don't you also have
to convert the type of invalidation as well? Eg the nested mode uses
the DID quite differently than the guest that is not nesting.
IIRC you end up converting vDIDs into pPASID/pDIDs and doing a PASID
invalidation.
The point of doing all this stuff is to avoid invalidation
multiplication, one guest invalidation should translate into one host
invalidation. When properly setup the guest invalidations should not
iterate over host objects..
Jason
next prev parent reply other threads:[~2023-04-03 12:23 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-03 0:33 Cache Invalidation Solution for Nested IOMMU Nicolin Chen
2023-04-03 7:26 ` Liu, Yi L
2023-04-03 8:39 ` Tian, Kevin
2023-04-03 15:24 ` Nicolin Chen
2023-04-04 2:42 ` Tian, Kevin
2023-04-04 3:12 ` Nicolin Chen
2023-04-03 12:23 ` Jason Gunthorpe [this message]
2023-04-03 8:00 ` Tian, Kevin
2023-04-03 14:29 ` Nicolin Chen
2023-04-04 2:15 ` Tian, Kevin
2023-04-04 2:47 ` Nicolin Chen
2023-04-03 14:08 ` Jason Gunthorpe
2023-04-03 14:51 ` Nicolin Chen
2023-04-03 19:15 ` Robin Murphy
2023-04-04 0:02 ` Nicolin Chen
2023-04-04 16:20 ` Jason Gunthorpe
2023-04-04 16:50 ` Shameerali Kolothum Thodi
2023-04-05 11:57 ` Jason Gunthorpe
2023-04-06 6:23 ` Zhangfei Gao
2023-04-06 6:39 ` Nicolin Chen
2023-04-06 11:40 ` Jason Gunthorpe
2023-04-10 1:08 ` Nicolin Chen
2023-04-11 9:07 ` Jean-Philippe Brucker
2023-04-11 11:57 ` Jason Gunthorpe
2023-04-11 18:39 ` Nicolin Chen
2023-04-11 18:41 ` Jason Gunthorpe
2023-04-11 19:02 ` Nicolin Chen
2023-04-11 18:43 ` Nicolin Chen
2023-04-12 2:47 ` Zhangfei Gao
2023-04-12 5:47 ` Nicolin Chen
2023-05-03 15:14 ` Shameerali Kolothum Thodi
2023-05-03 23:44 ` Nicolin Chen
2023-04-05 5:45 ` Nicolin Chen
2023-04-05 11:37 ` Jason Gunthorpe
2023-04-05 15:34 ` Nicolin Chen
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=ZCrFRJEF3/oickfY@nvidia.com \
--to=jgg@nvidia.com \
--cc=baolu.lu@linux.intel.com \
--cc=eric.auger@redhat.com \
--cc=iommu@lists.linux.dev \
--cc=jean-philippe@linaro.org \
--cc=kevin.tian@intel.com \
--cc=nicolinc@nvidia.com \
--cc=peterx@redhat.com \
--cc=robin.murphy@arm.com \
--cc=shameerali.kolothum.thodi@huawei.com \
--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