IOMMU
IOMMU транслюе і абмяжоўвае звароты да памяці, ініцыяваныя прыладамі. Яго паводзіны ў плане абароны і скразнога пракіду (passthrough) залежаць ад тапалогіі платформы, убудаванага ПЗ, АС і канфігурацыі драйвераў.
Што вам трэба ведаць
IOMMU транслюе і абмяжоўвае звароты да памяці, ініцыяваныя прыладамі. Яго паводзіны ў плане абароны і скразнога пракіду (passthrough) залежаць ад тапалогіі платформы, убудаванага ПЗ, АС і канфігурацыі драйвераў.
Як гэта працуе
Прылада выконвае транзакцыі DMA, выкарыстоўваючы адрасы, якія інтэрпрэтуюцца блокам трансляцыі I/O. АС або гіпервізар наладжваюць дамены і адлюстраванні, якія звязваюць гэтыя запыты з дазволенай сістэмнай памяццю. Ідэнтыфікатары прылад, агульныя межы трансляцыі і апрацоўка перапыненняў уплываюць на практычную ізаляцыю.
Дзе гэта карысна
VM можа атрымаць падтрымоўваную прыладу праз фрэймворк, які забяспечвае выкананне патрабаванняў яе групы ізаляцыі IOMMU. Прылады, якія падзяляюць адну групу, магчыма, спатрэбіцца прызначаць разам, таму што платформа не можа забяспечыць незалежную ізаляцыю на патрэбнай мяжы.
Як праверыць падтрымку і актыўнасць
Праверце апісанне IOMMU платформы і стан уключанасці, групы і патрабаванні да прызначэння прылад у АС/гіпервізары. На Intel даследуйце VT-d; на AMD выкарыстоўвайце задакументаваныя сродкі віртуалізацыі AMD I/O. Праверце паводзіны скіду і драйвера канкрэтнай прылады.
Віртуалізаванае разгортванне мае некалькі ўзроўняў: фізічныя магчымасці, дазвол мікрапраграмы, актыўны гіпервізар хоста, адкрытыя магчымасці для госця і падтрымка з боку гасцявой АС. Правярайце той узровень, дзе аперацыя фактычна выконваецца, уключаючы ўкладзеную віртуалізацыю, калі гэта актуальна.
Чаго гэта функцыя не гарантуе
Сцяг IOMMU не даказвае, што кожная перыферыйная прылада ізалявана незалежна або што абарона актыўная. Абарона табліц старонак CPU сама па сабе не абмяжоўвае ўвесь DMA прылад. Непадтрымоўваныя перавызначэнні тапалогіі могуць аслабіць ізаляцыю і не з'яўляюцца звычайным спосабам выпраўлення сумяшчальнасці.
Сумяшчальнасць і прадукцыйнасць на практыцы
Выкананне на CPU, трансляцыя гасцявой памяці і перапрызначэнне DMA прылад - гэта асобныя механізмы. Не рабіце высноў аб пракідзе або ізаляцыі на падставе аднаго толькі поля віртуалізацыі. Выкарыстоўвайце падтрымліваемыя гіпервізарам сродкі дыягностыкі і дакладныя патрабаванні да платформы і прылад.
Практычны чэк-ліст для праверкі
- Зафіксуйце дакладную мадэль працэсара або платформы, а таксама задзейнічаныя версіі праграмы, АС і асяроддзя выканання. Захавайце дакладную фармулёўку памылкі або патрабавання.
- Звярніцеся да дакументацыі вытворцы для гэтай канкрэтнай мадэлі, затым праверце фактычныя магчымасці і ўключаны стан у асяроддзі, дзе выконваецца праграма.
- Супастаўце кожнае патрабаванне выбранага выканальнага файла або бэкэнда. Аналагічнай назвы функцыі, псеўданіма або агульнай назвы тэхналогіі недастаткова.
- Пацвердзіце, што праграма выбрала патрэбную рэалізацыю. Выкарыстоўвайце яе задакументаваныя сродкі дыягностыкі і падтрымліваемы запасны варыянт, калі патрабаванні не выконваюцца.
- Уносьце па адным падтрымліваемым змяненні за раз і паўтарайце тую ж нагрузку. Захоўвайце зыходную канфігурацыю і магчымасць адкату.
Калі функцыя пазначана, але праграмнае забеспячэнне не можа яе выкарыстоўваць
Пачніце з канкрэтнага кампанента, які выклікае збой. Апаратная база даных апісвае зафіксаваныя магчымасці; аперацыйная сістэма або гіпервізар могуць прадастаўляць іншае фактычнае асяроддзе. Памылка недапушчальнай інструкцыі (illegal instruction) таксама патрабуе даследавання канкрэтнай інструкцыі, якая выклікала збой, і зборкі бінарнага файла, паколькі пашкоджанне даных або іншая непадтрымліваемая інструкцыя могуць выклікаць аналагічны сімптом.
Усталюйце версію праграмы, драйвера або асяроддзя выканання, якая падтрымліваецца для дадзенай платформы, і пры неабходнасці выкарыстоўвайце задакументаваную вытворцам базавую або запасную зборку. Абнаўленне ПЗ не можа стварыць інструкцыю, якой няма ў працэсары. Змяненні ў мікрапраграме (firmware) і палітыках бяспекі павінны адпавядаць працэдурам вытворцы сістэмы і плану аднаўлення, а не агульным рэцэптам аптымізацыі.
Крыніцы і межы прымянення гэтага тлумачэння
Intel Virtualization Technology for Directed I/O Architecture Specification · Linux kernel: VFIO device access and IOMMU groups
Гэтыя даведнікі вызначаюць архітэктурныя паводзіны і патрабаванні да праграмнага забеспячэння. Яны не пацвярджаюць незалежна кожнае значэнне функцыі на звязанай старонцы мадэлі абсталявання. Для праверкі падтрымкі мадэллю выкарыстоўвайце даныя вытворцы на адпаведнай старонцы і правярайце фактычную канфігурацыю сістэмы. Гэты артыкул не змяшчае вынікаў тэсціравання (benchmark), сертыфікацыі або даты незалежнага агляду.
Крыніцы і праверка
Рэдакцыйная прыналежнасць: Feex. Дата незалежнай праверкі не зафіксавана. Як мы даследуем.
- Intel Virtualization Technology for Directed I/O Architecture Specification · Архітэктура DMA-пераадрасацыі, дамены трансляцыі, пераадрасацыя перапыненняў і структуры справаздачнасці ўбудаванага ПЗ. Падтрымка платформай павінна быць вызначана асобна.
- Linux kernel: VFIO device access and IOMMU groups · Тлумачыць групы ізаляцыі, валоданне прыладамі і абмежаванні, актуальныя для скразнога пракіду. Гэта не спіс сумяшчальнасці для канкрэтнай мацярынскай платы.
Ці быў гэты артыкул карысным?
Дастаткова адказаць "так" або "не". Выберыце прычыну, калі хочаце, або дадайце кароткую нататку.
Дзякуй. Гэта дапамагае нам паляпшаць гэтую старонку.