За Xen се разработва механизъм за паравиртуализация IOMMU

Разработчиците на проекта XCP-NG, който развива свободна платформа за внедряване и управление на облачна инфраструктура, представиха проекта PV-IOMMU, който позволява на гостуващите системи да получават достъп до ограничена функционалност на IOMMU, реализирана с инфраструктурата на паравиртуализацията Xen. На практика PV-IOMMU може да се използва за реализиране на защитата на DMA в Dom0 или за осигуряване на поддръжка на подсистемата на ядрото на Linux VFIO. По-рано хипервизорът Xen използваше IOMMU за пробразуването на достъпа до PCI устройства и ограничаване на достъпа на устройствата до паметта, но поради съображения за стабилност и безопасност гостуващите системи не можеха да достъпват директно предоставения от хардуера блок IOMMU.

IOMMU е специализиран блок за управление на паметта, който извършва транслация на виртуални адреси, видими за хардуерното устройство, в физически адреси, позволяваща изпълнение и филтриране на операции DMA по виртуални адреси, а също така ограничаваща и изолираща операции с вход-изход. В контекста на виртуализацията IOMMU позволява на гостуващите системи да достъпват директно периферни устройства, като Ethernet адаптери, графични карти и контролери за съхранение на данни. Реализацията на IOMMU от Intel носи името VT-d (Virtualization Technology for Directed I/O), AMD - AMD-Vi (I/O Virtualization), а ARM - SMMU (System Memory Management Unit).

Предложената паравиртуализирана реализация (PV-IOMMU) позволява на гостуващите системи да използват основните възможности на IOMMU, но абстрахира всички нискоуровневи хардуерни детайли. За включване в Xen е предложен нов хипервизорен повик (аналог на системен повик за хипервизори) HYPERVISOR_iommu_op, който могат да използват гостуващите системи за изпълнение на операции IOMMU. Сред другите, гостуващите системи вече могат да създават и изменят домейни IOMMU (IOMMU domain), наричани в Xen контексти IOMMU (IOMMU context), за да се избегне объркване с термина „домейн“ в Xen. Контекстите IOMMU позволяват организиране на достъпа на гостуващата система до паметта на устройствата и задаване на операции за транслация на паметта, прилагани на едно или няколко устройства.

На текущия етап на развитие PV-IOMMU се поддържа само технологията Intel VT-d, но в скоро време е планирано да се добави поддръжка за AMD-Vi и SMMUv3.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster