De ontwikkelaars van het XCP-NG-project aangekondigd Onlangs werken ze aan een nieuw project met de naam «PV-IOMMU» en dat gastsystemen toegang geeft tot beperkte functies van de IOMMU, geïmplementeerd via paravirtualisatie in de Xen-omgeving.
Kortom, PV-IOMMU belooft Dom0 in staat te stellen een geparavirtualiseerde IOMMU te gebruiken, dat verschillende voordelen biedt, zoals DMA-bescherming voor Dom0 en ondersteuning voor Linux VFIO.
Wat is IOMMU?
IOMMU bekend onder verschillende namen, afhankelijk van de fabrikant (onder andere VT-d in Intel, AMD-Vi in AMD, SMMU in ARM), Het is een speciaal apparaat geïmplementeerd wiens hoofdfunctie is vertaal of filter DMA-verzoeken (Directe geheugentoegang) van apparaten naar het fysieke geheugen van de machine. Bij virtualisatie wordt het gebruikt om gastsystemen rechtstreeks toegang te geven tot randapparatuur zoals Ethernet-adapters, grafische kaarten en opslagcontrollers.
Welke voordelen worden behaald met IOMMU-paravirualisatie?
eerder, de Xen-hypervisor gebruikte IOMMU om de toegang om te leiden van PCI-apparaten en beheert de toegang van deze apparaten tot het geheugen. Echter, Om stabiliteits- en veiligheidsredenen hadden gasten geen directe toegang tot het IOMMU-blok geleverd door de hardware.
We presenteren een nieuwe geparavirtualiseerde IOMMU, eenvoudigweg PV-IOMMU genoemd. Het implementeert in feite de functies die de gast van een IOMMU verwacht, waarbij alle interne details van de hardware worden geabstraheerd. In Xen hebben we een nieuwe hypercall voor dergelijke bewerkingen toegevoegd (HYPERVISOR_iommu_op) die verschillende IOMMU-bewerkingen biedt die de gast kan gebruiken (indien toegestaan).
Ondanks dit het is mogelijk gebleken een interface aan te bieden aan de gast om u toegang te geven tot IOMMU, met behulp van een vereenvoudigde, geparavirtualiseerde Xen-infrastructuur, terwijl hardwaredetails op laag niveau worden verborgen. Deze interface, genaamd PV-IOMMU, vat alle interne details van de hardware samen en biedt een reeks IOMMU-bewerkingen waartoe de gast toegang heeft, indien toegestaan. De bewerkingen in PV-IOMMU worden weergegeven als subbewerkingen in de hypercall HYPERVISOR_iommu_op en zijn ontworpen op een manier die handig is voor de gast.
Een van de belangrijkste kenmerken die de host van een IOMMU verwacht, is de mogelijkheid om "IOMMU-domeinen" te creëren en te wijzigen. Dit zijn een reeks vertalingen die geheugencontext maken en die op een apparaat (of meerdere apparaten) kunnen worden toegepast. Deze domeinen worden in Xen "IOMMU-contexten" genoemd om verwarring met Xen-domeinen, die virtuele machines zijn, te voorkomen.
Onder de verschillende voordelen die zich onderscheiden van IOMMU-paravirtualisatie worden de volgende genoemd:
- DMA-bescherming voor Dom0: IOMMU-paravirtualisatie maakt directe geheugentoegang (DMA)-bescherming mogelijk voor het beheerdomein (Dom0) in virtualisatieomgevingen. Dit helpt de systeembeveiliging en stabiliteit te verbeteren door te voorkomen dat apparaten rechtstreeks toegang krijgen tot het systeemgeheugen, wat de integriteit van Dom0 in gevaar zou kunnen brengen.
- Linux VFIO-ondersteuning: IOMMU-paravirtualisatie faciliteert ondersteuning voor gevirtualiseerde flexibele I/O-infrastructuur voor gebruikersapparaten (VFIO) in virtualisatieomgevingen, waardoor gebruikersapplicaties en virtuele machines rechtstreeks toegang krijgen tot hardwareapparaten.
- Maakt het eenvoudig om SPDK te implementeren met Xen: IOMMU-paravirtualisatie maakt ook deel uit van een voortdurende inspanning om SPDK met Xen te ondersteunen. Dit opent de deur naar een nieuw, snel datapad voor opslag van virtuele machines, dat de opslagprestaties in gevirtualiseerde omgevingen mogelijk kan verbeteren.
Daarnaast ook het is de bedoeling dat een van Xen's problemen samen met IOMMU wordt aangepakt, sinds momenteelof staat het bestaan toe van meerdere IOMMU-contexten in een enkel Xen-domein. Er wordt echter overwogen om het Xen IOMMU-subsysteem opnieuw te ontwerpen om rekening te houden met meerdere IOMMU-contexten en om bestaande functies aan te passen om er gebruik van te maken. Hoewel er een functionele PoC is geïmplementeerd die de eerste benadering implementeert, met bepaalde beperkingen en onvolledige ondersteuning, wordt vermeld dat er voor de toekomst wordt gewerkt aan een volledig herontwerp van het subsysteem.
Ten slotte moet dat worden vermeld In de huidige ontwikkelingsfase ondersteunt PV-IOMMU alleen Intel VT-d, maar ondersteuning voor AMD-Vi en SMMUv3 zal binnenkort worden toegevoegd. Als u er meer over wilt weten, kunt u de details raadplegen in de volgende link.