Re: [PATCH v7 9/9] vfio/type1: Handle different mdev isolation type

From: Neo Jia
Date: Fri Mar 08 2019 - 13:03:22 EST


On Thu, Mar 07, 2019 at 04:56:23PM -0700, Alex Williamson wrote:
> On Thu, 7 Mar 2019 00:44:54 -0800
> Neo Jia <cjia@xxxxxxxxxx> wrote:
>
> > On Fri, Feb 22, 2019 at 10:19:27AM +0800, Lu Baolu wrote:
> > > This adds the support to determine the isolation type
> > > of a mediated device group by checking whether it has
> > > an iommu device. If an iommu device exists, an iommu
> > > domain will be allocated and then attached to the iommu
> > > device. Otherwise, keep the same behavior as it is.
> > >
> > > Cc: Ashok Raj <ashok.raj@xxxxxxxxx>
> > > Cc: Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx>
> > > Cc: Kevin Tian <kevin.tian@xxxxxxxxx>
> > > Signed-off-by: Sanjay Kumar <sanjay.k.kumar@xxxxxxxxx>
> > > Signed-off-by: Liu Yi L <yi.l.liu@xxxxxxxxx>
> > > Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
> > > Reviewed-by: Jean-Philippe Brucker <jean-philippe.brucker@xxxxxxx>
> > > ---
> > > drivers/vfio/vfio_iommu_type1.c | 48 ++++++++++++++++++++++++++++-----
> > > 1 file changed, 41 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
> > > index ccc4165474aa..f1392c582a3c 100644
> > > --- a/drivers/vfio/vfio_iommu_type1.c
> > > +++ b/drivers/vfio/vfio_iommu_type1.c
> > > @@ -1368,13 +1368,40 @@ static void vfio_iommu_detach_group(struct vfio_domain *domain,
> > > iommu_detach_group(domain->domain, group->iommu_group);
> > > }
> > >
> >
> > Hi Baolu,
> >
> > To allow IOMMU-awared mdev, I think you need to modify the
> > vfio_iommu_type1_pin_pages and vfio_iommu_type1_unpin_pages to remove the
> > iommu->external_domain check.
> >
> > Could you please include that in your patch? If not, I can send out a separate
> > patch to address that issue.
>
> I figured it was intentional that an IOMMU backed mdev would not use
> the pin/unpin interface and therefore the exiting -EINVAL returns would
> be correct. Can you elaborate on the use case for still requiring the
> mdev pin/unpin interface for these devices? Thanks,

Sure. We are using this api to fetch a pfn of a guest physical address so we can
access it for PV.

Thanks,
Neo

>
> Alex