欧美在线专区-欧美在线伊人-欧美在线一区二区三区欧美-欧美在线一区二区三区-pornodoxxx中国妞-pornodoldoo欧美另类

position>home>Blogs

Arm對(duì)虛擬化下設(shè)備直通的支持

隨著云計(jì)算領(lǐng)域里,對(duì)的支ARM架構(gòu)處理器的虛擬廣泛使用,應(yīng)用開發(fā)人員熟悉ARM架構(gòu)相關(guān)技術(shù)的化下需求越來(lái)越迫切。眾所周知,設(shè)備提供虛擬機(jī)服務(wù)是直通云計(jì)算的典型應(yīng)用場(chǎng)景,而虛擬機(jī)里設(shè)備性能的對(duì)的支優(yōu)劣對(duì)服務(wù)質(zhì)量至關(guān)重要。

Arm對(duì)虛擬化下設(shè)備直通的支持

提到虛擬機(jī)里的虛擬設(shè)備,就不得不提及設(shè)備的化下虛擬化,最初虛擬機(jī)里的設(shè)備設(shè)備完全是依靠軟件模擬來(lái)實(shí)現(xiàn),也叫全虛擬化設(shè)備,直通這樣的對(duì)的支好處是運(yùn)行在物理機(jī)里的OS可以完全不需要修改就能在虛擬機(jī)里運(yùn)行,但設(shè)備性能很差,虛擬滿足不了人們的化下需求。后來(lái),設(shè)備有人提出了半虛擬化的直通思想,寄希望于軟件的優(yōu)化,比如修改設(shè)備模型,減少不必要的內(nèi)存拷貝,來(lái)滿足大家對(duì)設(shè)備的性能需求。典型代表virtio設(shè)備。此法使性能雖有較大提升,但與真實(shí)的設(shè)備仍有較大差距。為了獲取等同于真實(shí)設(shè)備的性能,設(shè)備直通的方式被提了出來(lái),也漸漸成為主流方式。

虛擬機(jī)里使用直通的設(shè)備,的確可以帶來(lái)最大的性能提升。但是卻暴漏出一系列的系統(tǒng)安全問題。比如提供DMA的設(shè)備通常可以寫內(nèi)存的任意頁(yè),因此虛擬機(jī)里的Guest OS擁有創(chuàng)建DMA的能力就等同于用戶空間擁有了root權(quán)限,惡意的設(shè)備可能利用此發(fā)動(dòng)DMA攻擊,給其他虛擬機(jī)乃至整個(gè)物理機(jī)帶來(lái)安全問題。因此,需要提供DMA重映射功能,通過(guò)頁(yè)表方式將直通設(shè)備對(duì)內(nèi)存的訪問限制到特定的域中,在提高IO性能的同時(shí)完成了直通設(shè)備的隔離,保證了直通設(shè)備DMA的安全性。此外,直通設(shè)備的中斷默認(rèn)是發(fā)給物理CPU的,要想通知到虛擬機(jī)里的vCPU,就需要中斷的重定向。

DMA重映射跟中斷重定向的實(shí)現(xiàn),最初是完全交由虛擬機(jī)監(jiān)控器(Hypervisor)或模擬器(比如qemu)來(lái)負(fù)責(zé)。這是一種純軟件的思路,必然大大降低設(shè)備的性能,因此急需硬件的參與配合。為此,ARM的SMMU和GIC規(guī)范順勢(shì)添加了對(duì)DMA重映射跟中斷重定向的支持。本文的重點(diǎn)便是圍繞這兩大特性介紹如何支持虛擬化環(huán)境下的設(shè)備直通。

一、DMA重映射

SMMU是System MMU的縮寫,是ARM架構(gòu)下一種對(duì)非CPU設(shè)備提供地址翻譯服務(wù)的組件,功能類似于CPU的MMU組件。這里非CPU設(shè)備主要指發(fā)起DMA操作的外圍子系統(tǒng)。如下圖所示:

10fd7ffa-e593-11ed-ab56-dac502259ad0.png

注:PE為Processing Element 的縮寫,可理解為CPU。

在虛擬化應(yīng)用場(chǎng)景下,地址翻譯往往分為兩個(gè)階段。階段一是虛擬地址(VA)到GuestOS認(rèn)為的物理地址(IPA)間的轉(zhuǎn)換;階段二為IPA到真實(shí)物理地址(PA)間的轉(zhuǎn)換。而SMMU既可以同時(shí)支持兩個(gè)階段的轉(zhuǎn)換,也可以單獨(dú)支持每個(gè)階段的轉(zhuǎn)換。這為直通設(shè)備DMA重映射提供了可能。直通設(shè)備的DMA只需要獲取IPA,之后的工作便交由SMMU來(lái)做階段二的處理,以達(dá)到安全高效的訪問PA的目的。如下圖所示:

11179bc4-e593-11ed-ab56-dac502259ad0.png

針對(duì)以上應(yīng)用場(chǎng)景,我們介紹SMMU的內(nèi)部結(jié)構(gòu)來(lái)闡述具體實(shí)現(xiàn)原理。SMMU含有兩個(gè)核心單元,分別為翻譯控制單元TCU和翻譯緩沖單元TBU。其中TCU主要含有Stream Mapping Table(SMT)和Context Bank Table(CBT)。SMT通過(guò)StreamID來(lái)索引內(nèi)部的Entry,StreamID跟具體直通設(shè)備一一對(duì)應(yīng), 從而獲取到指向CBT具體Entry的指針。CBT的Entry內(nèi)容則含有階段二翻譯表的指針,當(dāng)獲取到此指針后,翻譯過(guò)程即可像普通MMU一樣按部就班的進(jìn)行下去。而TBU的作用等同于TLB,借助Cache原理,加快SMMU工作效率,不再贅述。以上描述過(guò)程總結(jié)為如下框圖所示:

112a1236-e593-11ed-ab56-dac502259ad0.png

二、中斷重定向

GIC是Generic Interrupt Controller的縮寫。GIC的主要作用是路由各種不同的中斷信息給CPU。虛擬化環(huán)境下的中斷處理情形要復(fù)雜的多,有些因指令trap產(chǎn)生的中斷需要Hypervisor本身來(lái)處理;有些是分配給某個(gè)虛擬機(jī)的直通設(shè)備產(chǎn)生的中斷則需要虛擬機(jī)內(nèi)的軟件來(lái)處理;也有中斷被接收時(shí),對(duì)標(biāo)的虛擬機(jī)沒有處于運(yùn)行狀態(tài)的情況。這需要GIC提供機(jī)制,重定向中斷以滿足上述復(fù)雜的需求。

由于本文的重點(diǎn)是對(duì)直通設(shè)備虛擬化支持的講解,因此此部分將介紹GIC是如何支持直通設(shè)備中斷重映射的,并不會(huì)剖析GIC內(nèi)部組成及實(shí)現(xiàn)原理。我們以GICv3為例,圖示如下:

1141741c-e593-11ed-ab56-dac502259ad0.png

配以如下步驟說(shuō)明:

1 直通設(shè)備發(fā)起的中斷IRQ到達(dá)GIC;

2 GIC發(fā)物理的IRQ到CPU;

3 Hypervisor會(huì)從Physical CPU Interface讀取中斷信息;

4 Hypervisor發(fā)現(xiàn)此中斷是某虛擬機(jī)內(nèi)的直通設(shè)備觸發(fā),于是通過(guò)寫GIC List Register重新注入一個(gè)虛擬IRQ到GIC中;

5 GIC產(chǎn)生vIRQ中斷并發(fā)給vCPU;

6 最終vCPU接收vIRQ中斷并由運(yùn)行其上的GuestOS接管并通過(guò)跟Virtual CPU interface交互處理后續(xù)中斷任務(wù)。

至此,一個(gè)完整的中斷重映射過(guò)程結(jié)束。

在GIC參與直通設(shè)備的中斷重映射后,虛擬機(jī)在處理中斷效率上有了明顯提升,但是跟Host主機(jī)上普通物理中斷相比,總是多了一步由軟件Hypervisor參與的動(dòng)作。因此,我們稱以上方式為間接注入中斷的方式。為了進(jìn)一步提高處理中斷的效率,GICv4引入了直接注入中斷方式。具體原理則是直通設(shè)備在獲取中斷時(shí),GIC會(huì)將分配給設(shè)備的物理中斷與虛擬中斷做一個(gè)映射。這樣當(dāng)設(shè)備觸發(fā)中斷時(shí),GIC會(huì)直接發(fā)信號(hào)給vCPU。有這樣一種情況,設(shè)備觸發(fā)中斷時(shí)vCPU沒有運(yùn)行,即虛擬機(jī)處于休眠態(tài),如果直接發(fā)vIRQ給vCPU是得不到響應(yīng)的,這時(shí)候會(huì)產(chǎn)生一個(gè)物理的door-bell中斷來(lái)代替,此中斷交由Hypervisor處理,它會(huì)重新調(diào)度vCPU,從而使中斷得到及時(shí)響應(yīng)。

本文通過(guò)虛擬化下如何支持設(shè)備直通的角度,講解了ARM架構(gòu)支持DMA重映射跟中斷重定向的原理,旨在普及ARM架構(gòu)下一些支持虛擬化的技術(shù)。當(dāng)然ARM架構(gòu)對(duì)虛擬化的支持不僅局限于此。相信隨著ARM生態(tài)的不斷完善,這些技術(shù)會(huì)被越來(lái)越多的人所熟知。

審核編輯 :李倩

Popular articles

主站蜘蛛池模板: 国产精品自在线| 粗大的内捧猛烈进出视频| 性爱狂魔| 爱搞激情在线| 中文字幕第9页萱萱影音先锋| 美女的阴沟| 天下第一社区视频welcome| 一本到不卡| 国产大片线上免费看| 国产精品午夜电影| 美女扒开尿口让男人捅爽| 日本加勒比在线精品视频| 免费中日高清无专码有限公司| 日本一道本在线视频| 99久久精品费精品国产一区二区| loveme动漫在线观看免费| 国产黄色片91| 亚洲国产日韩欧美一区二区三区 | 被夫上司强迫的女人在线中文| 免费看的一级毛片| 亚洲国产天堂久久综合2261144| 国产精品v欧美精品∨日韩| 欧美乱大交xxxxx免费| 翁虹三级在线伦理电影| 在线观看亚洲专区| 亚洲欧美日韩综合久久久久| 天天av天天翘天天综合网| 国产gav成人免费播放视频| 品色堂永久免费| 在线观看亚洲专区| 性感女邻居| 成年女人在线视频| 国产砖码砖专区| 国产精品久久久久久久久齐齐| 国产成在线观看免费视频| 大香煮伊在2020一二三久应用| 欧美aaaaaaaaa| 欧美换爱交换乱理伦片免费观看| 两个人看的www视频免费完整版| 黑人干| 亚洲视频不卡|