mark gross 5e0d2a6fc0 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>
2008-04-20 21:47:07 -07:00
..
2008-04-20 21:47:03 -07:00
2005-10-18 08:26:15 -07:00
2006-12-04 02:00:22 -05:00
2008-04-20 21:47:02 -07:00
2008-04-20 21:47:07 -07:00
2008-04-20 21:47:06 -07:00
2008-04-20 21:47:07 -07:00
2006-12-01 14:36:56 -08:00
2008-04-20 21:47:03 -07:00
2008-04-20 21:47:03 -07:00
2008-02-01 15:04:31 -08:00
2008-04-20 21:47:03 -07:00
2008-04-20 21:47:06 -07:00
2008-04-20 21:47:03 -07:00
2008-03-03 10:47:14 -08:00
2008-04-20 21:46:54 -07:00