Efter det seneste AMD IOMMU v2-sidetabelarbejde og andre IOMMU-forbedringer som en del af AMD’s indsats for yderligere at forbedre Linux-virtualiseringsunderstøttelsen på EPYC-serverplatforme, er de seneste patches ud af AMD fra i går til brug på hardware-accelereret virtualiseret IOMMU (AMD) HW-vIOMMU).
AMD Hardware Accelerated Virtualized IOMMU-funktionalitet giver delvis hardware-acceleration til implementering af gæste-IOMMU’er med virtualisering af gæstekommandobufferen, gæstehændelseslog og gæste-PPR-log. I sidste ende handler arbejdet om at forbedre PCI pass-through I/O-ydeevne og samtidig give gæste-I/O-beskyttelse.
Patch-serien udsendt i onsdags af AMD Linux-ingeniør Suravee Suthikulpanit tilføjer yderligere:
“Denne funktion kan desuden bruges i kombination med indlejrede IOMMU-sidetabeller til accelereret adresseoversættelse fra GIOVA til GPA. I dette tilfælde administreres værtssidetabellen (a.k.a stage2 eller v1) af hypervisoren (dvs. KVM/VFIO), og gæstesidetabellen (a.k.a stage1 eller v2) administreres af gæsten IOMMU driver (f.eks. ved opstart af gæstekerne med amd_iommu=pgtable_v2-tilstand).
Da IOMMU-hardwaren virtualiserer gæstekommandobufferen, tillader dette at IOMMU-operationer accelereres, såsom ugyldiggørelse af gæstesider (dvs. fase1), når kommandoen udstedes af gæstekernen uden indgriben fra hypervisoren.
Denne serie er implementeret oven på IOMMUFD-rammeværket. Den udnytter de eksisterende API’er og ioctls til at levere gæste-iommu-information (dvs. struct iommu_hw_info_amd), og tillader gæst at give gæstesidetabeloplysninger (dvs. struct iommu_hwpt_amd_v2) til opsætning af brugerdomæne.”
AMD IOMMU’s arbejde i denne retning har foregået i et stykke tid, så det er godt at se det rykke tættere på.
Tilbage i 2021 præsenteret AMD på kVM Forum-konferencen omkring deres prototypeindsats på det tidspunkt. Onsdagens patches er stadig markeret som en”anmodning om kommentarer”, da de afslutter implementeringen og forhåbentlig når mainline Linux-kernen i en ikke alt for fjern fremtid.