On Fri, Jun 05, 2015 at 04:35:09PM +1000, Alexey Kardashevskiy wrote:
> So far one TCE table could only be used by one IOMMU group. However
> IODA2 hardware allows programming the same TCE table address to
> multiple PE allowing sharing tables.
> 
> This replaces a single pointer to a group in a iommu_table struct
> with a linked list of groups which provides the way of invalidating
> TCE cache for every PE when an actual TCE table is updated. This adds 
> pnv_pci_link_table_and_group() and pnv_pci_unlink_table_and_group() helpers 
> to manage the list. However without VFIO, it is still going
> to be a single IOMMU group per iommu_table.
> 
> This changes iommu_add_device() to add a device to a first group
> from the group list of a table as it is only called from the platform
> init code or PCI bus notifier and at these moments there is only
> one group per table.
> 
> This does not change TCE invalidation code to loop through all
> attached groups in order to simplify this patch and because
> it is not really needed in most cases. IODA2 is fixed in a later
> patch.
> 
> This should cause no behavioural change.
> 
> Signed-off-by: Alexey Kardashevskiy <[email protected]>
> [aw: for the vfio related changes]
> Acked-by: Alex Williamson <[email protected]>
> Reviewed-by: Gavin Shan <[email protected]>

Reviewed-by: David Gibson <[email protected]>

-- 
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

Attachment: pgpwxnmO9LvZ_.pgp
Description: PGP signature

Reply via email to