Los inihayag ng mga developer ng proyektong XCP-NG Kamakailan, gumagawa sila ng isang bagong proyekto na may pangalan "PV-IOMMU" at nagbibigay-daan sa mga guest system na ma-access ang mga limitadong function ng IOMMU na ipinatupad sa pamamagitan ng paravirtualization sa Xen environment.
Talaga, PV-IOMMU nangangako na paganahin ang Dom0 na gumamit ng paravirtualized IOMMU, na nag-aalok ng ilang mga pakinabang tulad ng proteksyon ng DMA para sa Dom0 at suporta para sa Linux VFIO.
Ano ang IOMMU?
IOMMU na kilala sa iba't ibang pangalan depende sa tagagawa (VT-d sa Intel, AMD-Vi sa AMD, SMMU sa ARM, bukod sa iba pa), Ito ay isang espesyal na aparato na ipinatupad na ang pangunahing tungkulin ay isalin o i-filter ang mga kahilingan sa DMA (Direct Memory Access) mula sa mga device hanggang sa pisikal na memorya ng makina. Sa virtualization, ginagamit ito upang payagan ang mga guest system na direktang ma-access ang mga peripheral na device gaya ng mga Ethernet adapter, graphics card, at storage controller.
Anong mga benepisyo ang nakukuha sa IOMMU paravirualization?
Dati, ginamit ng Xen hypervisor ang IOMMU para i-redirect ang access ng mga PCI device at kontrolin ang pag-access ng mga device na ito sa memorya. gayunpaman, Para sa katatagan at seguridad, hindi direktang ma-access ng mga bisita ang block ng IOMMU ibinigay ng hardware.
Nagpapakita kami ng bagong paravirtualized IOMMU na tinatawag na PV-IOMMU. Karaniwang ipinapatupad nito ang mga tampok na inaasahan ng bisita mula sa isang IOMMU, na ina-abstract ang lahat ng panloob na detalye ng hardware. Sa Xen, nagdagdag kami ng bagong hypercall para sa mga naturang operasyon (na HYPERVISOR_iommu_op) na nagbibigay ng iba't ibang mga operasyon ng IOMMU na magagamit ng bisita (kung pinapayagan).
Sa kabila nito, naging posible na mag-alok ng interface sa bisita upang payagan kang ma-access ang IOMMU, gamit ang isang pinasimpleng Xen paravirtualized na imprastraktura, habang itinatago ang mababang antas ng mga detalye ng hardware. Ang interface na ito, na tinatawag na PV-IOMMU, ay nag-abstract ng lahat ng panloob na detalye ng hardware at nagbibigay ng isang hanay ng mga operasyon ng IOMMU na maa-access ng bisita, kung pinapayagan. Ang mga operasyon sa PV-IOMMU ay nakalantad bilang mga sub-operasyon sa HYPERVISOR_iommu_op hypercall, at idinisenyo sa paraang maginhawa para sa bisita.
Isa sa mga pangunahing feature na inaasahan ng host mula sa isang IOMMU ay ang kakayahang gumawa at magbago ng "IOMMU Domains" na isang hanay ng mga pagsasalin na gumagawa ng konteksto ng memorya at maaaring ilapat sa isang device (o maraming device). Ang mga domain na ito ay tinatawag na "IOMMU Contexts" sa Xen upang maiwasan ang pagkalito sa mga Xen domain na mga virtual machine.
Kabilang sa iba't ibang benepisyong namumukod-tangi sa IOMMU paravirtualization, ang mga sumusunod ay binanggit:
- Proteksyon ng DMA para sa Dom0: Ang IOMMU paravirtualization ay nagbibigay-daan sa direktang pag-access sa memorya (DMA) na proteksyon para sa domain ng pamamahala (Dom0) sa mga kapaligiran ng virtualization. Nakakatulong ito na mapabuti ang seguridad at katatagan ng system sa pamamagitan ng pagpigil sa mga device na direktang ma-access ang memorya ng system, na maaaring makompromiso ang integridad ng Dom0.
- Suporta sa Linux VFIO: Pinapadali ng IOMMU paravirtualization ang suporta para sa virtualized flexible na imprastraktura ng I/O para sa mga device ng user (VFIO) sa mga virtualization environment, na nagpapahintulot sa mga application ng user at virtual machine na direktang ma-access ang mga hardware device.
- Pinapadali ang pagpapatupad ng SPDK sa Xen: Ang IOMMU paravirtualization ay bahagi rin ng isang patuloy na pagsisikap na suportahan ang SPDK sa Xen. Binubuksan nito ang pinto sa isang bagong mabilis na landas ng data para sa virtual machine storage, na maaaring potensyal na mapalakas ang pagganap ng storage sa mga virtualized na kapaligiran.
Bilang karagdagan sa na, din isa sa mga problema ni Xen ay binalak na matugunan sa IOMMU, mula sa kasalukuyano nagbibigay-daan sa pagkakaroon ng maraming konteksto ng IOMMU sa isang domain ng Xen. Gayunpaman, ang muling pagdidisenyo ng Xen IOMMU subsystem ay isinasaalang-alang upang isaalang-alang ang maraming konteksto ng IOMMU at baguhin ang mga umiiral na tampok upang magamit ang mga ito. Kahit na ang isang functional na PoC na nagpapatupad ng unang diskarte ay ipinatupad, na may ilang mga limitasyon at hindi kumpletong suporta, binanggit na ang isang kumpletong muling pagdidisenyo ng subsystem ay ginagawa para sa hinaharap.
Panghuli, dapat itong nabanggit na Sa kasalukuyang yugto ng pag-unlad, sinusuportahan lamang ng PV-IOMMU ang Intel VT-d, ngunit ang suporta para sa AMD-Vi at SMMUv3 ay binalak na idagdag sa lalong madaling panahon. Kung interesado kang matuto pa tungkol dito, maaari mong konsultahin ang mga detalye sa sumusunod na link.