On Fri, May 29, 2015 at 06:44:55PM +1000, Alexey Kardashevskiy wrote: > Before the IOMMU user (VFIO) would take control over the IOMMU table > belonging to a specific IOMMU group. This approach did not allow sharing > tables between IOMMU groups attached to the same container. > > This introduces a new IOMMU ownership flavour when the user can not > just control the existing IOMMU table but remove/create tables on demand. > If an IOMMU implements take/release_ownership() callbacks, this lets > the user have full control over the IOMMU group. When the ownership > is taken, the platform code removes all the windows so the caller must > create them. > Before returning the ownership back to the platform code, VFIO > unprograms and removes all the tables it created. > > This changes IODA2's onwership handler to remove the existing table > rather than manipulating with the existing one. From now on, > iommu_take_ownership() and iommu_release_ownership() are only called > from the vfio_iommu_spapr_tce driver. > > Old-style ownership is still supported allowing VFIO to run on older > P5IOC2 and IODA IO controllers. > > No change in userspace-visible behaviour is expected. Since it recreates > TCE tables on each ownership change, related kernel traces will appear > more often. > > This adds a pnv_pci_ioda2_setup_default_config() which is called > when PE is being configured at boot time and when the ownership is > passed from VFIO to the platform code. > > Signed-off-by: Alexey Kardashevskiy > [aw: for the vfio related changes] > Acked-by: Alex Williamson Reviewed-by: David Gibson -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson