IOMMU
IOMMU tłumaczy i ogranicza dostęp do pamięci inicjowany przez urządzenia. Działanie jego funkcji ochronnych i trybu passthrough zależy od topologii platformy, oprogramowania układowego, systemu operacyjnego oraz konfiguracji sterowników.
Co musisz wiedzieć
IOMMU tłumaczy i ogranicza dostęp do pamięci inicjowany przez urządzenia. Działanie jego funkcji ochronnych i trybu passthrough zależy od topologii platformy, oprogramowania układowego, systemu operacyjnego oraz konfiguracji sterowników.
Jak to działa
Urządzenie wykonuje operacje DMA, używając adresów interpretowanych przez jednostkę translacji wejścia/wyjścia. System operacyjny lub hipernadzorca konfiguruje domeny i mapowania, które wiążą te żądania z dozwoloną pamięcią systemową. Identyfikatory urządzeń, współdzielone granice translacji oraz obsługa przerwań wpływają na praktyczną izolację.
Gdzie funkcja jest przydatna
Maszyna wirtualna może otrzymać obsługiwane urządzenie za pośrednictwem mechanizmu egzekwującego przynależność do grupy izolacji IOMMU. Urządzenia współdzielące grupę mogą wymagać jednoczesnego przypisania, ponieważ platforma nie jest w stanie zapewnić niezależnej izolacji na pożądanej granicy.
Jak sprawdzać obsługę i włączenie
Sprawdź opis IOMMU na platformie oraz stan włączenia, grupy i wymagania dotyczące przypisywania urządzeń w systemie operacyjnym lub hipernadzorcy. W przypadku procesorów Intel sprawdź VT-d; w przypadku AMD użyj udokumentowanych funkcji wirtualizacji wejścia/wyjścia AMD. Sprawdź zachowanie sterownika i procedury resetowania konkretnego urządzenia.
Zwirtualizowane wdrożenie ma kilka warstw: fizyczne możliwości, uprawnienia oprogramowania układowego, aktywny hipernadzorca hosta, udostępnione możliwości gościa oraz obsługa w systemie operacyjnym gościa. Sprawdź warstwę, w której faktycznie działa dana operacja, uwzględniając wirtualizację zagnieżdżoną, gdy ma to zastosowanie.
Czego ta funkcja nie określa
Flaga IOMMU nie dowodzi, że każde urządzenie peryferyjne jest niezależnie odizolowane, ani że ochrona jest aktywna. Same zabezpieczenia tabel stron procesora nie ograniczają w pełni operacji DMA urządzeń. Nieobsługiwane modyfikacje topologii mogą osłabić izolację i nie są standardową metodą rozwiązywania problemów ze zgodnością.
Zgodność i wydajność w praktyce
Wykonywanie kodu przez procesor, translacja pamięci gościa i remapowanie DMA urządzeń to osobne mechanizmy. Nie należy wnioskować o passthrough ani izolacji na podstawie jednego pola wirtualizacji. Skorzystaj z oficjalnej diagnostyki hipernadzorcy oraz dokładnych wymagań platformy/urządzenia.
Praktyczna lista kontrolna weryfikacji
- Zanotuj dokładny model procesora lub platformy oraz wersje używanej aplikacji, systemu operacyjnego i środowiska wykonawczego. Zachowaj dokładne sformułowanie błędu lub wymagania.
- Sprawdź dokumentację producenta dla danego modelu, a następnie zweryfikuj faktyczne możliwości i stan włączenia w środowisku, w którym działa program.
- Porównaj każde wymaganie wybranego pliku binarnego lub backendu. Podobnie nazwana funkcja, alias lub ogólne oznaczenie technologii nie są wystarczające.
- Upewnij się, że aplikacja wybrała zamierzoną implementację. Użyj jej udokumentowanej diagnostyki oraz obsługiwanego mechanizmu fallback, gdy wymagania nie są spełnione.
- Wprowadzaj jednorazowo tylko jedną obsługiwaną zmianę i powtarzaj to samo obciążenie testowe. Zachowaj oryginalną konfigurację oraz dostępną ścieżkę przywracania.
Gdy funkcja jest wymieniona, lecz oprogramowanie nie może z niej skorzystać
Zacznij od elementu, w którym bezpośrednio występuje błąd. Baza danych sprzętu opisuje zarejestrowane możliwości; system operacyjny lub hipernadzorca może udostępniać inne środowisko efektywne. Błąd nieprawidłowej instrukcji (illegal instruction) wymaga także zbadania faktycznej instrukcji powodującej błąd oraz kompilacji pliku binarnego, ponieważ uszkodzenie danych lub inna nieobsługiwana instrukcja może wywołać podobny objaw.
Zainstaluj wersję aplikacji, sterownika lub środowiska wykonawczego obsługiwaną na danej platformie i w razie potrzeby użyj udokumentowanej przez producenta kompilacji bazowej lub awaryjnej. Aktualizacja oprogramowania nie może utworzyć instrukcji, której procesor fizycznie nie posiada. Modyfikacje oprogramowania układowego i zasad bezpieczeństwa powinny przebiegać zgodnie z procedurą producenta systemu i planem przywracania, a nie ogólnikowym schematem optymalizacji.
Źródła i zakres niniejszego opisu
Specyfikacja architektury Intel Virtualization Technology for Directed I/O · Jądro Linux: dostęp do urządzeń VFIO i grupy IOMMU
Te źródła definiują zachowanie architektoniczne i wymagania oprogramowania. Nie weryfikują one niezależnie każdej wartości funkcji na powiązanej stronie modelu sprzętu. W celu sprawdzenia obsługi przez model należy skorzystać z materiałów producenta na tej stronie i sprawdzić efektywną konfigurację systemu. Niniejszy artykuł nie zawiera wyników testów wydajnościowych, certyfikacji ani daty niezależnego przeglądu.
Źródła i weryfikacja
Własność redakcyjna: Feex. Nie odnotowano daty niezależnego przeglądu. Jak prowadzimy badania.
- Specyfikacja architektury Intel Virtualization Technology for Directed I/O · Architektura remappingu DMA, domeny translacji, remapping przerwań oraz struktury raportowania oprogramowania układowego. Obsługa platformy musi być zweryfikowana oddzielnie.
- Jądro Linux: dostęp do urządzeń VFIO i grupy IOMMU · Wyjaśnia grupy izolacji, własność urządzeń i ograniczenia istotne dla trybu passthrough. Nie jest to lista kompatybilności konkretnej płyty głównej.
Czy ten artykuł był pomocny?
Wystarczy odpowiedź tak lub nie. Wybierz powód, jeśli chcesz, lub dodaj krótką notatkę.
Dziękujemy. Pomaga nam to ulepszać tę stronę.