[Intel IOMMU][patch 0/8] Intel IOMMU Support.

Ashok Raj
2007-04-24T15:12:37Z

Hello again!

Andrew: Could you help include in -mm to give it more exposure preparing for
mainline inclusion with more testing?

This is a resend of the patches after addressing some feedback we received.

1. As len requested, we moved most of the acpi parts to drivers/pci instead
of leaving them in drivers/acpi, including some renaming of functions,
using just acpi_get_table() only.
2. Made the guard page support configurable.
3. Added new CONFIG option to allocate consecutive address instead of re-using
free addresses as an experimental option, Not validated extensively.
Its expected to improve in certain cases...
4. Fixed a couple minor bugs that got exposed in testing.

Other feedback:

- Some suggested depend on ACPI, but thats not doable for several reasons.
- Graphics 1-1 maps exist only for compatibility until graphics drivers
start calling pci map functions, including user space X that might be
using /dev/mem.

Some more interesting possibilities. -- enhancements to work on.

- In order to ensure we dont break any driver that may not be using dma api's
here are some suggestions to work on.
- Create a single 1-1 map, and make sure any pci device gets this map
when they do a pci_set_master() to enable bus mastering automatically.
- When the device driver does a first call to do a dma mapping, then
dissociate the device from the unity map domain, to its own. This gives
limited protection but doesnt break drivers that do not use dma
mapping.
- Creating context entries only 1 per segment.. today we create one per
IOMMU which is not required.

This way we can avoid doing some of the workarounds we do for some devices
today, and will function as a default container for compatibility.

On one hand, this will provide more compatibility, but we will lose
oppertunity to identify broken device drivers that dont use dma api's
and fix them.... Depending on who you talk to.. some like it.. some just
hate it! and would like to fix the broken ones instead.

Cheers,
Ashok Raj
--