XCP-NG projekti arendajad, kes töötavad välja avatud platvormi pilvinfrastruktuuri juurutamiseks ja haldamiseks, esitlesid PV-IOMMU projekti, mis võimaldab külgsüsteemidel pääseda piiratud IOMMU funktsionaalsusele, mis on rakendatud Xen-i paravirtualiseerimise infrastruktuuri abil. Praktikas saab PV-IOMMU't kasutada DMA kaitse rakendamiseks Dom0-s või Linuxi kerneli VFIO alatüüpide toe tagamiseks. Varem kasutas Xen hüperviisor IOMMU-d PCI-seadmete juurdepääsu edastamiseks ja seadmete mälule juurdepääsu piiramise jaoks, kuid stabiilsuse ja turvalisuse kaalutlustel ei saanud külgsüsteemid otse riistvara poolt pakutava IOMMU ploki juurde pääseda.
IOMMU on spetsialiseeritud mälu juhtimise plokk, mis teostab virtuaalsete aadresside, mida riistvara seade näeb, füüsiliste aadressideks tõlgendamist, võimaldades teostada ja filtreerida DMA-operatsioone virtuaalsete aadresside kaudu ning piirata ja isoleerida sisendi-väljundi operatsioone. Virtualiseerimise kontekstis võimaldab IOMMU külgsüsteemidel otse pöörduda perifeersete seadmete poole, nagu Ethernet-adapterid, graafikakaardid ja salvestusseadmete kontrollerid. Inteli IOMMU rakendus kannab nime VT-d ("Virtualization Technology for Directed I/O), AMD-l on see AMD-Vi (I/O Virtualization) ja ARM-i puhul SMMU (System Memory Management Unit).
Ehdotatud paravirtualiseeritud teostus (PV-IOMMU) võimaldab külgsüsteemidel kasutada IOMMU põhi võimalusi, kuid samas abstraheerib kõik madala taseme riistvara detailid. Xen-i koosseisu on pakutud uus hüperkutsumus (sarnane süsteemikutsumisele hüperviisorite jaoks) HYPERVISOR_iommu_op, mida külgsüsteemid saavad kasutada IOMMU operatsioonide teostamiseks. Muuhulgas saavad külgsüsteemid nüüd luua ja muuta domeenidele IOMMU-d (IOMMU domain), Xen-is nimetatakse neid IOMMU kontekstideks (IOMMU context), et vältida segadust termini "domeen" kasutamisega Xen-is. IOMMU kontekstid võimaldavad korraldada külgsüsteemi juurdepääsu seadme mälule ja määrata mälutõlgenduse operatsioone, mis kehtivad ühele või mitmele seadmele.
Praegu toetab PV-IOMMU ainult Intel VT-d tehnoloogiat, kuid lähitulevikus on plaanis lisada AMD-Vi ja SMMUv3 toe.
Allikas: opennet.ru
