Re: [PATCH v4 14/32] iommu: introduce iommu_domain_alloc_type and the KVM type

From: Jason Gunthorpe
Date: Thu Mar 17 2022 - 09:53:04 EST


On Thu, Mar 17, 2022 at 05:47:36AM +0000, Tian, Kevin wrote:
> > From: Robin Murphy
> > Sent: Tuesday, March 15, 2022 6:49 PM
> >
> > On 2022-03-14 19:44, Matthew Rosato wrote:
> > > s390x will introduce an additional domain type that is used for
> > > managing IOMMU owned by KVM. Define the type here and add an
> > > interface for allocating a specified type vs the default type.
> >
> > I'm also not a huge fan of adding a new domain_alloc interface like
> > this, however if it is justifiable, then please make it take struct
> > device rather than struct bus_type as an argument.
> >
> > It also sounds like there may be a degree of conceptual overlap here
> > with what Jean-Philippe is working on for sharing pagetables between KVM
> > and SMMU for Android pKVM, so it's probably worth some thought over
> > whether there's any scope for common interfaces in terms of actual
> > implementation.
>
> Same here. Yan Zhao is working on page table sharing between KVM
> and VT-d. This is one important usage to build atop iommufd and
> a set of common interfaces are definitely necessary here. 😊

I always thought 'page table sharing with KVM' is SVA - ie it requires
PRI in the IOMMU driver as the KVM page table is fully unpinned and
dynamic. This S390 case is not doing SVA/PRI

Are people working on teaching KVM to DMA pin every page and avoid
having a dynamic page table? I'm surprised, a lot of stuff won't work,
eg write protect..

Jason