Software::Kernel
Linux-Kernel mit Unterstützung für Calgary-IOMMU
Für eine gute Unterstützung der I/O-Virtualisierung im Linux-Kernel sorgt ein Patch von Muli Ben-Yehuda.
Ein mittlerweile in Andrew Mortons mm-Kernel aufgenommener Satz von Patches von Muli Ben-Yehuda erlaubt die Nutzung der in einigen IBM-Servern verbauten »Calgary« I/O Memory Management Unit. Die IOMMU ermöglicht (ähnlich der Memory Management Unit bei Zugriffen auf den RAM-Speicher) eine Umsetzung von DMA-Adressen samt Speicherschutz, wodurch z.B. 32 Bit-Geräte in 64 Bit-Umgebungen genutzt werden können - oder man implementiert Schutzmechanismen für Applikationen und virtuelle Maschinen. Eine IOMMU ist deswegen besonders für Hersteller von Virtualisierungslösungen, etwa XenSource oder VMWare, interessant, und ist ein wesentlicher Bestandteil der I/O-Virtualisierungs-Technologie von AMD (»Pacifica« und »Presidio«). IBM verbaut die Calgary-IOMMU in einigen pSeries-Servern, AMD hat ein Calgary-ähnliches Design vorgesehen. Intel konterte erst vor wenigen Tagen mit einer passenden Erweiterung für Vanderpool, bisher war in dem Design anscheinend noch keine IOMMU enthalten.
In seinem Blog zeigte Ben-Yehuda bereits vor drei Wochen eine gepatchte Version von Xen 3.0.0, die auf einem IBM xServer x366 (Quad-Xeon mit EM64T) mit aktivierter IOMMU lief. Auf vollständige Unterstützung für Pacifica/Presidio, Vanderpool, Calgary und potentiell weitere Hardware-Virtualisierer durch Kernel und Applikationen wird man allerdings noch ein bisschen warten müssen - bis jetzt sind Prozessoren mit den nötigen Erweiterungen noch nicht in größeren Stückzahlen verfügbar, die seit letztem Jahr sporadisch verfügbaren Intel-Prozessoren mit Vanderpool entsprechen noch nicht der aktuellen Zusatzspezifikation. XenSource hat für Xen 3.0.0 bereits die Unterstützung der Intel- und AMD-Technologien zugesagt.
Näheres zu dem Patch findet man im Projekt »mm-traffic«. In diesem berichtet der Autor dieser Nachricht regelmäßig über Entwicklungen am 2.6er-Kernel.