aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authormark gross <mgross@linux.intel.com>2008-03-04 18:22:08 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2008-04-21 00:47:07 -0400
commit5e0d2a6fc094a9b5047998deefeb1254c66856ee (patch)
treeeb4f5bfbd1b5f937685c1f980ca83fc21c377fea /Documentation
parent0255f543d9888fb5c5fbcd265ca2eee2d6ecff6a (diff)
PCI: iommu: iotlb flushing
This patch is for batching up the flushing of the IOTLB for the DMAR implementation found in the Intel VT-d hardware. It works by building a list of to be flushed IOTLB entries and a bitmap list of which DMAR engine they are from. After either a high water mark (250 accessible via debugfs) or 10ms the list of iova's will be reclaimed and the DMAR engines associated are IOTLB-flushed. This approach recovers 15 to 20% of the performance lost when using the IOMMU for my netperf udp stream benchmark with small packets. It can be disabled with a kernel boot parameter "intel_iommu=strict". Its use does weaken the IOMMU protections a bit. Signed-off-by: Mark Gross <mgross@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/kernel-parameters.txt4
1 files changed, 4 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index e30d8fe4e4b1..f7492cd10093 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -847,6 +847,10 @@ and is between 256 and 4096 characters. It is defined in the file
847 than 32 bit addressing. The default is to look 847 than 32 bit addressing. The default is to look
848 for translation below 32 bit and if not available 848 for translation below 32 bit and if not available
849 then look in the higher range. 849 then look in the higher range.
850 strict [Default Off]
851 With this option on every unmap_single operation will
852 result in a hardware IOTLB flush operation as opposed
853 to batching them for performance.
850 854
851 io_delay= [X86-32,X86-64] I/O delay method 855 io_delay= [X86-32,X86-64] I/O delay method
852 0x80 856 0x80