Programeri projekta XCP-NG, koji razvija slobodnu platformu za implementaciju i upravljanje oblacima, predstavili su projekt PV-IOMMU, koji omogućava gostujućim sustavima pristup ograničenoj funkcionalnosti IOMMU, implementiranoj korištenjem infrastrukture para-virtualizacije Xen. U praksi, PV-IOMMU se može koristiti za implementaciju zaštite DMA u Dom0 ili za osiguranje podrške za Linux VFIO potpod sustav. Ranije je hipervizor Xen koristio IOMMU za propuštanje pristupa PCI uređajima i ograničavanje pristupa uređaja memoriji, ali iz razloga stabilnosti i sigurnosti gostujući sustavi nisu mogli izravno pristupiti IOMMU bloku koji pruža oprema.
IOMMU je specijalizirana jedinica za upravljanje memorijom koja obavlja prevođenje virtualnih adresa, vidljivih hardverskim uređajima, u fizičke adrese, omogućavajući izvođenje i filtriranje DMA operacija po virtualnim adresama, kao i ograničavanje i izolaciju ulazno-izlaznih operacija. U kontekstu virtualizacije, IOMMU omogućava gostujućim sustavima da izravno pristupaju perifernim uređajima, poput Ethernet adaptera, grafičkih kartica i kontrolera uređaja za pohranu. IOMMU implementacija iz Intela poznata je pod nazivom VT-d ("Virtualization Technology for Directed I/O"), AMD - AMD-Vi (I/O Virtualization), a ARM - SMMU (System Memory Management Unit).
Predložena para-virtualizirana implementacija (PV-IOMMU) omogućava gostujućim sustavima korištenje osnovnih mogućnosti IOMMU-a, ali pritom apstrahira sve niske hardverske detalje. Za uključivanje u Xen predložen je novi hipervizor (analog sustavnog poziva za hipervizore) HYPERVISOR_iommu_op, koji mogu koristiti gostujući sustavi za izvođenje IOMMU operacija. Između ostalog, gostujući sustavi sada mogu stvarati i mijenjati domene IOMMU (IOMMU domena), nazvana u Xen kontekstima IOMMU (IOMMU kontekst) kako bi se izbjegla zbrka s pojmom "domena" u Xen-u. IOMMU konteksti omogućuju organizaciju pristupa gostujućeg sustava memoriji uređaja i određivanje operacija prevođenja memorije koje se primjenjuju na jedan ili više uređaja.
U trenutnoj fazi razvoja, PV-IOMMU podržava samo Intel VT-d tehnologiju, ali u skoroj budućnosti planira se dodati podrška za AMD-Vi i SMMUv3.
Izvor: opennet.ru
