Utvecklarna av projektet XCP-NG, som utvecklar en öppen plattform för att distribuera och hantera molninfrastruktur, har presenterat projektet PV-IOMMU, som möjliggör för gÀstsystem att fÄ tillgÄng till begrÀnsad funktionalitet av IOMMU, implementerad med hjÀlp av Xen-paravirtualisering. I praktiken kan PV-IOMMU anvÀndas för att implementera DMA-skydd i Dom0 eller för att ge stöd Ät Linux-kÀrnans VFIO-underkomponent. Tidigare anvÀnde hypervisorn Xen IOMMU för att vidarebefordra Ätkomst till PCI-enheter och begrÀnsa enheternas Ätkomst till minne, men av stabilitets- och sÀkerhetsskÀl kunde gÀstsystem inte direkt Ätkomma den hÄrdvarubaserade IOMMU-modulen.
IOMMU Àr en specialiserad minneshanteringsblock som utför översÀttning av virtuella adresser, synliga för hÄrdvaruenheter, till fysiska adresser, vilket gör det möjligt att utföra och filtrera DMA-operationer baserat pÄ virtuella adresser, samt begrÀnsa och isolera in- och utdataoperationer. I kontexten av virtualisering gör IOMMU det möjligt för gÀstsystem att direkt adressera perifera enheter som Ethernet-adaptrar, grafikkort och lagringskontroller. Intel:s implementation av IOMMU erbjuds under namnet VT-d ("Virtualization Technology for Directed I/O"), AMD som AMD-Vi (I/O Virtualization), och ARM som SMMU (System Memory Management Unit).
Den föreslagna paravirtualiserade implementeringen (PV-IOMMU) gör det möjligt för gÀstsystem att anvÀnda de grundlÀggande funktionerna i IOMMU, men abstraherar bort alla lÄgnivÄhÄrdvarudetaljer. För att inkludera detta i Xen har ett nytt hyperanrop (motsvarande ett systemanrop för hypervisorer) HYPERVISOR_iommu_op föreslagits, vilket gÀstsystem kan anvÀnda för att utföra IOMMU-operationer. Bland annat kan gÀstsystem nu skapa och Àndra domÀner IOMMU (IOMMU-domÀn), kallad IOMMU-kontekster i Xen, för att undvika förvÀxling med termen "domÀn" i Xen. IOMMU-kontekster gör det möjligt att organisera gÀstsystemets Ätkomst till enheternas minne och ange minnesöversÀttningsoperationer tillÀmpade pÄ en eller flera enheter.
I det nuvarande utvecklingsstadiet stöder PV-IOMMU endast Intel VT-d-teknologi, men stöd för AMD-Vi och SMMUv3 planeras snart att lÀggas till.
KĂ€lla: opennet.ru
