This patch series implements Address Translation Service support for the Intel IOMMU. The PCIe Endpoint that supports ATS capability can request the DMA address translation from the IOMMU and cache the translation itself. This can alleviate IOMMU TLB pressure and improve the hardware performance in the I/O virtualization environment. The ATS is one of PCI-SIG I/O Virtualization (IOV) Specifications. The spec can be found at: http://www.pcisig.com/specifications/iov/ats/ (it requires membership). Changelog: v4 -> v5 1, rebase to the latest IOMMU tree v3 -> v4 1, coding style fixes (Grant Grundler) 2, support the Virtual Function ATS capability v2 -> v3 1, throw error message if VT-d hardware detects invalid descriptor on Queued Invalidation interface (David Woodhouse) 2, avoid using pci_find_ext_capability every time when reading ATS Invalidate Queue Depth (Matthew Wilcox) v1 -> v2 added 'static' prefix to a local LIST_HEAD (Andrew Morton) Yu Zhao (6): PCI: support the ATS capability PCI: handle Virtual Function ATS enabling VT-d: parse ATSR in DMA Remapping Reporting Structure VT-d: add device IOTLB invalidation support VT-d: cleanup iommu_flush_iotlb_psi and flush_unmaps VT-d: support the device IOTLB drivers/pci/dmar.c | 189 ++++++++++++++++++++++++++++++++++++++--- drivers/pci/intel-iommu.c | 141 +++++++++++++++++++++++++------ drivers/pci/iov.c | 155 ++++++++++++++++++++++++++++++++-- drivers/pci/pci.h | 39 +++++++++ include/linux/dma_remapping.h | 1 + include/linux/dmar.h | 9 ++ include/linux/intel-iommu.h | 16 +++- include/linux/pci.h | 2 + include/linux/pci_regs.h | 10 ++ 9 files changed, 514 insertions(+), 48 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html