[RFC PATCH 2/7] iommu: Add share domain interface in iommu for spimdev

Kenneth Lee 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
>  spimdev
> 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.


> 	Joerg


More information about the Linux-accelerators mailing list