[RFC PATCH 2/7] iommu: Add share domain interface in iommu for spimdev
liguozhu at hisilicon.com
Thu Aug 9 11:09:38 AEST 2018
On Wed, Aug 08, 2018 at 11:13:54AM +0200, Joerg Roedel wrote:
> Date: Wed, 8 Aug 2018 11:13:54 +0200
> From: Joerg Roedel <joro at 8bytes.org>
> To: Kenneth Lee <nek.in.cn at gmail.com>
> CC: Jonathan Corbet <corbet at lwn.net>, Herbert Xu
> <herbert at gondor.apana.org.au>, "David S . Miller" <davem at davemloft.net>,
> Alex Williamson <alex.williamson at redhat.com>, Kenneth Lee
> <liguozhu at hisilicon.com>, Hao Fang <fanghao11 at huawei.com>, Zhou Wang
> <wangzhou1 at hisilicon.com>, Zaibo Xu <xuzaibo at huawei.com>, Philippe
> Ombredanne <pombredanne at nexb.com>, Greg Kroah-Hartman
> <gregkh at linuxfoundation.org>, Thomas Gleixner <tglx at linutronix.de>,
> linux-doc at vger.kernel.org, linux-kernel at vger.kernel.org,
> linux-crypto at vger.kernel.org, iommu at lists.linux-foundation.org,
> kvm at vger.kernel.org, linux-accelerators at lists.ozlabs.org, Lu Baolu
> <baolu.lu at linux.intel.com>, Sanjay Kumar <sanjay.k.kumar at intel.com>,
> linuxarm at huawei.com
> Subject: Re: [RFC PATCH 2/7] iommu: Add share domain interface in iommu for
> User-Agent: NeoMutt/20170421 (1.8.2)
> Message-ID: <20180808091354.ppqgineql3pufwwr at 8bytes.org>
> On Wed, Aug 01, 2018 at 06:22:16PM +0800, Kenneth Lee wrote:
> > From: Kenneth Lee <liguozhu at hisilicon.com>
> > This patch add sharing interface for a iommu_group. The new interface:
> > iommu_group_share_domain()
> > iommu_group_unshare_domain()
> > can be used by some virtual iommu_group (such as iommu_group for spimdev)
> > to share their parent's iommu_group.
> > When the domain of the group is shared, it cannot be changed before
> > unshared. In the future, notification can be added if update is required.
> >From the description or the patch I don't really get why this is needed.
> Please update the description and make a case for this API addition.
Yes, I will add more description in next version.
The idea here is:
1. iommu_domain is the setting of the IOMMU(the unit) of an iommu_group.
2. The iommu_group originally uses a default domain or a created one (e.g. by vfio)
as its effective domain. There is only one user for a domain. If a device is
bound to vfio driver, it uses the new created domain. And if it is unbound from
vfio driver, it is switched back to the default domain.
3. But for spimdev, we create an mdev which share it parent device's IOMMU. That
means, the parent device (along with its iommu group) will continue use its
iommu_domain, and the mdev will use the same at the same time.
4. This API, is to tell the iommu_group that the domain is shared by the
spimdev. And it should be changed before it is unshared.
More information about the Linux-accelerators