Po nedávné práci s tabulkou stránek AMD IOMMU v2 a dalších vylepšeních IOMMU v rámci snahy AMD dále zlepšit podporu virtualizace Linuxu na serverových platformách EPYC jsou nejnovější záplaty od AMD ze včerejška určeny pro práci na hardwarově akcelerované virtualizované IOMMU (AMD HW-vIOMMU).
Funkce AMD Hardware Accelerated Virtualized IOMMU poskytuje částečnou hardwarovou akceleraci pro implementaci hostovaných IOMMU s virtualizací vyrovnávací paměti příkazů hosta, protokolu událostí hosta a protokolu PPR hosta. V konečném důsledku jde o zlepšení výkonu PCI pass-through I/O při zachování ochrany I/O hosta.
Série oprav odeslaná ve středu inženýrem AMD Linux Suravee Suthikulpanit dále dodává:
„Tuto funkci lze navíc použít v kombinaci s vnořenými tabulkami stránek IOMMU k zrychlený překlad adres z GIOVA do GPA. V tomto případě je hostitelská tabulka stránek (také znám jako stage2 nebo v1) spravována hypervizorem (tj. KVM/VFIO) a hostovaná tabulka stránek (také znám jako stage1 nebo v2) je spravována hostujícím IOMMU ovladač (např. při spouštění hostujícího jádra v režimu amd_iommu=pgtable_v2).
Protože hardware IOMMU virtualizuje vyrovnávací paměť příkazů hosta, umožňuje to urychlit operace IOMMU, jako je zneplatnění stránek hosta (tj. fáze1), když je příkaz vydán hostující jádro bez zásahu hypervizoru.
Tato řada je implementována nad rámcem IOMMUFD. K poskytování informací o hostu iommu využívá stávající rozhraní API a ioctls (tj. struct iommu_hw_info_amd) a umožňuje hostovi poskytnout informace o tabulce stránek hosta (tj. struct iommu_hwpt_amd_v2) pro nastavení uživatelské domény.”
Práce AMD IOMMU v tomto směru již nějakou dobu probíhá. je dobré vidět, jak se přibližuje.
Zpět v roce 2021 AMD představilo na konference kVM Forum o jejich prototypovém úsilí v tomto bodě. Středeční záplaty jsou stále označeny jako „žádost o komentáře“, protože dokončují implementaci a doufejme, že se v nepříliš vzdálené budoucnosti dostanou do hlavního linuxového jádra.