Intel IOMMU Pass Through Support
authorFenghua Yu <fenghua.yu@intel.com>
Sat, 25 Apr 2009 00:30:20 +0000 (17:30 -0700)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 29 Apr 2009 05:54:34 +0000 (06:54 +0100)
commit4ed0d3e6c64cfd9ba4ceb2099b10d1cf8ece4320
tree950bacfaf57040aafbcc2ea9b52eb171d35c23bd
parent091069740304c979f957ceacec39c461d0192158
Intel IOMMU Pass Through Support

The patch adds kernel parameter intel_iommu=pt to set up pass through
mode in context mapping entry. This disables DMAR in linux kernel; but
KVM still runs on VT-d and interrupt remapping still works.

In this mode, kernel uses swiotlb for DMA API functions but other VT-d
functionalities are enabled for KVM. KVM always uses multi level
translation page table in VT-d. By default, pass though mode is disabled
in kernel.

This is useful when people don't want to enable VT-d DMAR in kernel but
still want to use KVM and interrupt remapping for reasons like DMAR
performance concern or debug purpose.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Acked-by: Weidong Han <weidong@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Documentation/kernel-parameters.txt
arch/ia64/include/asm/iommu.h
arch/ia64/kernel/pci-swiotlb.c
arch/x86/include/asm/iommu.h
arch/x86/kernel/pci-dma.c
arch/x86/kernel/pci-swiotlb.c
drivers/pci/dmar.c
drivers/pci/intel-iommu.c
include/linux/dma_remapping.h
include/linux/intel-iommu.h