mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jacob Pan <jacob.pan@linux.microsoft.com>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Mostafa Saleh <smostafa@google.com>,
	iommu@lists.linux.dev, Nicolin Chen <nicolinc@nvidia.com>,
	Kevin Tian <kevin.tian@intel.com>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, Wei Liu <wei.liu@kernel.org>,
	"K . Y . Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
	linux-hyperv@vger.kernel.org, Joerg Roedel <joro@8bytes.org>,
	Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
	Vasant Hegde <vasant.hegde@amd.com>,
	Arnd Bergmann <arnd@arndb.de>,
	linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Aneesh Kumar K . V" <aneesh.kumar@kernel.org>,
	Mukesh Rathor <mukeshrathor@microsoft.com>,
	John Starks <John.Starks@microsoft.com>,
	Souradeep Chakrabarti <schakrabarti@microsoft.com>,
	Yu Zhang <zhangyu1@linux.microsoft.com>,
	Easwar Hariharan <eahariha@linux.microsoft.com>,
	Alex Williamson <alex@shazbot.org>,
	jacob.pan@linux.microsoft.com
Subject: Re: [PATCH RFC 1/9] iommu: Introduce external attach domain type
Date: Mon, 9 Nov 2026 22:42:00 -0800	[thread overview]
Message-ID: <20261109224200.000033c6@linux.microsoft.com> (raw)
In-Reply-To: <20261110005259.GU663069@ziepe.ca>

Hi Jason,

On Mon, 9 Nov 2026 20:52:59 -0400
Jason Gunthorpe <jgg@ziepe.ca> wrote:

> On Fri, Nov 06, 2026 at 01:03:52PM -0800, Jacob Pan wrote:
> > I am not stating that it will break UAPI because of blocking domain
> > is used. What I am trying to say is that with the blocking domain ->
> > external transition, we do not need a new UAPI for external attach
> > for non-CC. It will just reuse the existing UAPI.
> > VMM:
> > 	do_ioctl(vfio_cdev_fd, VFIO_DEVICE_ATTACH_IOMMUFD_PT,
> > &attach, "VFIO_DEVICE_ATTACH_IOMMUFD_PT");
> > hv-iommu-root: external_domain.attach_dev() will do the hypercall.  
> 
> You've basically described a wonky NESTING domain.
> 
> I think you should just use nested domains for this. Even though there
> is no S2 make it possible to create a nested domain through the
> viommu..
I didn't use nested domain since the current parent hwpt is a paging
domain which cannot be used to express the external attach semantics.

Are you saying that we create a parent-less VIOMMU (in Aneesh's patchset
and my RFC), and modify the iommufd core code to allow nested domains
to be formed with an externally managed parent? or we expose a
opague parent S2 that is not paging domain?

> If hyperv ever learns to support VIOMMU you will need this anyhow to
> pass vSTE/vDTE/etc to hyperv.
> 
VIOMMU support is established between guest and hyperv directly, where
vSTEs are passed via SMMU emulation (by Hypev). There is no host iommufd
involvement, I think that is different from qemu.

> For now the nesting domain creation can just accept an empty struct or
> something which means identity?
Yeah, identity or passthrough should work.

But if we go with the nested domain route and let hyperv iommu driver
handle the nested domain attach, it still would not work for pKVM.
pKVM's root SMMU is emulated, so it cannot do the external attach
hypercall in the unmodified SMMU driver.

So I am willing to entertain Mostafa's approach to park the device in
blocking domain, then use hypervisor provided viommu/vdevice ops to
invoke device external attach hypercall. Basically, move the
attach_device to external S2 operation out of iommu driver to the
hypervisor code. It does not need domain ID or anything IOMMU specific.


Thanks,

Jacob

  reply	other threads:[~2026-11-10  6:42 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-25 19:07 [RFC PATCH 0/9] iommu/iommufd: Add hypervisor external attach Jacob Pan
2026-09-25 19:07 ` [PATCH RFC 1/9] iommu: Introduce external attach domain type Jacob Pan
2026-10-21 10:57   ` Mostafa Saleh
2026-10-26 23:10     ` Jacob Pan
2026-11-04 10:27       ` Mostafa Saleh
2026-11-04 17:08         ` Jason Gunthorpe
2026-11-06 21:03           ` Jacob Pan
2026-11-10  0:52             ` Jason Gunthorpe
2026-11-10  6:42               ` Jacob Pan [this message]
2026-09-25 19:07 ` [PATCH RFC 2/9] iommufd: Introduce hypervisor vIOMMU type Jacob Pan
2026-09-25 19:07 ` [PATCH RFC 3/9] iommufd: Add external HWPT support Jacob Pan
2026-09-25 19:07 ` [PATCH RFC 4/9] iommufd/selftest: Add hypervisor external attach backend Jacob Pan
2026-09-25 19:07 ` [PATCH RFC 5/9] mshv: Add partition file identity helper Jacob Pan
2026-09-25 19:07 ` [PATCH RFC 6/9] mshv: Add prepare callback for external device attach Jacob Pan
2026-09-25 19:07 ` [PATCH RFC 7/9] iommu/hyperv: Split root IOMMU declarations Jacob Pan
2026-09-25 19:07 ` [PATCH RFC 8/9] iommu/hyperv: Add fd-backed vIOMMU support Jacob Pan
2026-09-25 19:07 ` [PATCH RFC 9/9] iommu/hyperv: Add IOMMUFD external domains Jacob Pan
2026-10-21 10:55 ` [RFC PATCH 0/9] iommu/iommufd: Add hypervisor external attach Mostafa Saleh
2026-10-26 18:49   ` Jacob Pan
2026-11-04 10:23     ` Mostafa Saleh
2026-11-04 17:04       ` Jason Gunthorpe

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=20261109224200.000033c6@linux.microsoft.com \
    --to=jacob.pan@linux.microsoft.com \
    --cc=John.Starks@microsoft.com \
    --cc=alex@shazbot.org \
    --cc=aneesh.kumar@kernel.org \
    --cc=arnd@arndb.de \
    --cc=decui@microsoft.com \
    --cc=eahariha@linux.microsoft.com \
    --cc=haiyangz@microsoft.com \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=kys@microsoft.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longli@microsoft.com \
    --cc=mukeshrathor@microsoft.com \
    --cc=nicolinc@nvidia.com \
    --cc=robin.murphy@arm.com \
    --cc=schakrabarti@microsoft.com \
    --cc=smostafa@google.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=vasant.hegde@amd.com \
    --cc=wei.liu@kernel.org \
    --cc=will@kernel.org \
    --cc=zhangyu1@linux.microsoft.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

all inboxes | Powered by JetHome®