AMD Pacifica: Virtualisierung von CPU & Speicher

Initialisierung

Ob ein AMD64-Prozessor SVM unterstützt, kann die Host-Software über die CPUID-Funktion 8000_000Ah abfragen. In das EAX-Register übergebene Werte signalisieren dann die SVM-Präsenz sowie die Version von SVM.

Will ein VMM den Guest-Modus des Prozessors verwenden, muss er ihn erst aktivieren. Dies erfolgt über das Setzen des Bit 12 im EFER-MSR-Register (EFER.SVME) auf den Wert 1. Danach lassen sich durch den Befehl VMRUN die SVM Extensions verwenden. Soll der Prozessor den Guest-Modus verlassen, muss ein #VMEXIT Ereignis von der System-Software verwendet werden. Bei Intels Vanderpool heißen die entsprechenden VT-x-Befehle VMXON und VMXOFF. Den Guest-Modus bezeichnet Intel dabei als VMX-Non-Root-Modus.

Vor dem Ausführen des VMRUN-Befehls muss die Host-Software einen 4 KByte großen Speicherbereich für SMV-Operationen reservieren. Die Adresse dieser Speicherregion wird einem Operanten des VMRUN-Befehls übergeben. In diesem 4-KByte-Bereich sind alle relevanten Informationen des Prozessors und des Betriebssystems einer VM gespeichert.