• Fenghua Yu's avatar
    IOMMU Identity Mapping Support (drivers/pci/intel_iommu.c) · 2c2e2c38
    Fenghua Yu authored
    Identity mapping for IOMMU defines a single domain to 1:1 map all PCI
    devices to all usable memory.
    
    This reduces map/unmap overhead in DMA API's and improve IOMMU
    performance. On 10Gb network cards, Netperf shows no performance
    degradation compared to non-IOMMU performance.
    
    This method may lose some of DMA remapping benefits like isolation.
    
    The patch sets up identity mapping for all PCI devices to all usable
    memory. In the DMA API, there is no overhead to maintain page tables,
    invalidate iotlb, flush cache etc.
    
    32 bit DMA devices don't use identity mapping domain, in order to access
    memory beyond 4GiB.
    
    When kernel option iommu=pt, pass through is first tried. If pass
    through succeeds, IOMMU goes to pass through. If pass through is not
    supported in hw or fail for whatever reason, IOMMU goes to identity
    mapping.
    Signed-off-by: default avatarFenghua Yu <fenghua.yu@intel.com>
    Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
    2c2e2c38
intel-iommu.c 85.1 KB