diff options
author | mark gross <mgross@linux.intel.com> | 2008-03-04 18:22:08 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-04-21 00:47:07 -0400 |
commit | 5e0d2a6fc094a9b5047998deefeb1254c66856ee (patch) | |
tree | eb4f5bfbd1b5f937685c1f980ca83fc21c377fea /Documentation | |
parent | 0255f543d9888fb5c5fbcd265ca2eee2d6ecff6a (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.txt | 4 |
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 |