国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Linux 中斷虛擬化之一

云計(jì)算 虛擬化
中斷是計(jì)算機(jī)系統(tǒng)中非常重要的部分,計(jì)算機(jī)基礎(chǔ)理論書籍往往也會(huì)花上很多篇幅討論中斷,但是因?yàn)椴僮飨到y(tǒng)都替開發(fā)人員處理好中斷了,所以除非是系統(tǒng)工程師,否則一般開發(fā)人員對(duì)中斷很難有一個(gè)很直觀的認(rèn)識(shí),因此理解如何通過軟件的方式來模擬中斷更是一個(gè)挑戰(zhàn)。

[[437491]]

中斷是計(jì)算機(jī)系統(tǒng)中非常重要的部分,計(jì)算機(jī)基礎(chǔ)理論書籍往往也會(huì)花上很多篇幅討論中斷,但是因?yàn)椴僮飨到y(tǒng)都替開發(fā)人員處理好中斷了,所以除非是系統(tǒng)工程師,否則一般開發(fā)人員對(duì)中斷很難有一個(gè)很直觀的認(rèn)識(shí),因此理解如何通過軟件的方式來模擬中斷更是一個(gè)挑戰(zhàn)。

因此,在本章中,我們簡單介紹硬件中斷的基本原理,然后結(jié)合中斷的基本原理討論如何虛擬化中斷芯片。我們從起初IBM PC為單核系統(tǒng)設(shè)計(jì)的PIC(8259A)機(jī)制開始,討論到為多核系統(tǒng)設(shè)計(jì)的APIC,一直到繞開I/O APIC、從設(shè)備直接向LAPIC發(fā)送基于消息的MSI機(jī)制。

中斷芯片可以在用戶空間中模擬,也可以在內(nèi)核空間模擬,但是因?yàn)橹袛嘈酒枰芗睾虶uest以及內(nèi)核中的KVM模塊交互,顯然在內(nèi)核空間模擬更合理,所以KVM在內(nèi)核中實(shí)現(xiàn)中斷芯片的模擬。最后,我們討論了為了提高效率,Intel是如何從硬件層面對(duì)虛擬化中斷進(jìn)行支持的,以及KVM是如何使用他們的。

虛擬中斷

在探討Guest模式的CPU處理中斷前,我們首先回顧一下物理CPU是如何響應(yīng)中斷的。當(dāng)操作系統(tǒng)允許CPU響應(yīng)中斷后,每當(dāng)執(zhí)行完一條指令后,CPU都將檢查中斷引腳是否有效,一旦有效,CPU將處理中斷,然后再執(zhí)行下一條指令,如圖3-1所示。

圖1 CPU處理中斷

當(dāng)有中斷需要CPU處理時(shí),中斷芯片將有效連接CPU的INTR引腳,也就是說如果INTR是高電平有效,那么中斷芯片拉高INTR引腳的電平。CPU在執(zhí)行完一條指令后,將檢查INTR引腳。類似的,虛擬中斷也效仿這種機(jī)制,虛擬中斷芯片負(fù)責(zé)將與CPU的INTR引腳相連的“引腳”有效,然后在每次VM entry時(shí),KVM將檢查虛擬中端芯片的INTR“引腳”是否有效。對(duì)于軟件虛擬的中斷芯片而言,“引腳”只是一個(gè)變量。如果KVM發(fā)現(xiàn)虛擬中斷芯片有中斷請(qǐng)求,則向VMCS中VM-entry control部分的VM-entry interruption-informationfield字段注入中斷信息,然后Guest模式下的CPU將執(zhí)行Guest系統(tǒng)IDT中對(duì)應(yīng)的中斷處理服務(wù),圖3-2為單核系統(tǒng)使用PIC中斷芯片下的虛擬中斷過程。

圖2 基于PIC的虛擬中斷過程

具體步驟如下:

1)虛擬設(shè)備向虛擬中斷芯片PIC發(fā)送中斷請(qǐng)求,虛擬PIC記錄下虛擬設(shè)備的中斷信息。與物理的中斷過程不同,此時(shí)并不會(huì)觸發(fā)虛擬PIC芯片的中斷評(píng)估邏輯,而是在VM entry時(shí)進(jìn)行。

2)如果虛擬CPU處于睡眠狀態(tài),則喚醒虛擬CPU,即使虛擬CPU對(duì)應(yīng)的線程進(jìn)入物理CPU的就緒任務(wù)隊(duì)列,隨時(shí)可以準(zhǔn)備得到運(yùn)行機(jī)會(huì)。

3)當(dāng)虛擬CPU開始運(yùn)行時(shí),在其切入Guest前一刻,KVM模塊將檢查虛擬PIC芯片,查看是否有中斷需要處理。此時(shí),KVM將觸發(fā)虛擬PIC芯片的中斷評(píng)估邏輯。

4)一旦虛擬中斷芯片計(jì)算出有需要Guest處理的中斷,則將中斷信息注入到VMCS中的字段VM-entry interruption-information。

5)進(jìn)入Guest模式后,CPU將調(diào)用Guest IDT中相應(yīng)的中斷服務(wù)處理中斷。

PIC只能支持單處理器系統(tǒng),對(duì)于多處理器系統(tǒng),需要APIC支持。對(duì)于虛擬化而言,顯然也需要虛擬相應(yīng)的APIC,但是其本質(zhì)上與PIC基本相同,如圖3-3所示。

圖3 基于APIC的虛擬中斷過程

與單處理器情況相比,多處理器的虛擬中斷主要有2點(diǎn)不同:

1)在多處理器系統(tǒng)下,不同CPU之間需要收發(fā)中斷,因此,每個(gè)CPU分別需要關(guān)聯(lián)一個(gè)獨(dú)立的中斷芯片,這個(gè)中斷芯片稱為LAPIC。LAPIC不僅需要接收CPU之間核間中斷IPI(Inter-Processor Interrupt),還需要接收來自外設(shè)的中斷。外設(shè)的中斷引腳不可能連接到每個(gè)LAPIC上,因此,有一個(gè)統(tǒng)一的I/O APIC芯片負(fù)責(zé)連接外設(shè),如果一個(gè)I/O APIC引腳不夠用,系統(tǒng)中可以使用多個(gè)I/O APIC。LAPIC和I/O APIC都接到中斷總線上,通過總線進(jìn)行通信。所以在虛擬化場景下,需要虛擬LAPIC和I/O APIC兩個(gè)組件。

2)在多處理器情況下,僅僅是喚醒可能在睡眠的虛擬CPU線程還不夠,如果虛擬CPU是在另外一顆物理CPU上運(yùn)行于Guest模式,此時(shí)還需要向其發(fā)送IPI中斷,使目的CPU從Guest模式退出到Host模式,然后下一次VM entry時(shí),進(jìn)行中斷注入。

Guest模式的CPU和虛擬中斷芯片處于兩個(gè)世界,所以處于Guest模式的CPU不能檢查虛擬中斷芯片的引腳,只能在VM entry時(shí)由KVM模塊代為檢查,然后寫入到VMCS。所以,一旦有中斷需要注入,那么處于Guest模式的CPU一定需要VM exit,退出到Host模式,這是一個(gè)很大的開銷。

為了去除VM exit這個(gè)開銷,Intel在硬件層面對(duì)中斷虛擬化進(jìn)行了支持。LAPIC使用一個(gè)頁面大小內(nèi)存存儲(chǔ)寄存器,我們知道,當(dāng)Guest訪問LAPIC這些寄存器時(shí),將導(dǎo)致VM exit,但是事實(shí)上,某些訪問LAPIC的這些寄存器,并不需要VMM介入,所以也就無需VM exit,所以Intel實(shí)現(xiàn)了一個(gè)處于Guest模式的這樣的一個(gè)頁面,稱之為virtual-APIC page。除次之外,Intel還在Guest模式下實(shí)現(xiàn)了部分中斷芯片的邏輯,比如中斷評(píng)估,我們將其稱之為虛擬中斷邏輯,如圖4所示。

圖4 硬件虛擬化支持下的中斷虛擬化過程

Intel從硬件層面對(duì)虛擬化進(jìn)行了支持,實(shí)現(xiàn)了一個(gè)處于Guest模式的用于存儲(chǔ)中斷相關(guān)寄存器的virtual-APIC page。除次之外,Intel還在Guest模式下實(shí)現(xiàn)了部分中斷芯片的邏輯,用于中斷評(píng)估和遞交。

在此情況下,只要LAPIC收到中斷,其不必再等待下一次VM entry時(shí),被動(dòng)執(zhí)行中斷評(píng)估,而是主動(dòng)向處于Guest模式的CPU告知信息,這個(gè)位置就是posted-interrupt descriptor。如果目標(biāo)CPU處于Guest模式,則通過一個(gè)特殊的核間中斷posted-interrupt notification通知目標(biāo)CPU,從而觸發(fā)虛擬的中斷邏輯,其會(huì)在Guest模式下進(jìn)行評(píng)估評(píng)估并且向虛擬CPU遞交中斷,而無須再通過VM exit/VM entry的方式注入中斷。

在硬件虛擬化的支持下,在Guest模式下有了狀態(tài)和邏輯,就可以模擬很多中斷的行為,比如訪問中斷寄存器、跟蹤中斷的狀態(tài)以及向CPU遞交中斷等。因此,很多中斷行為就無須VMM介入了,從而大大的減少了VM exit的次數(shù)。當(dāng)然有些寫中斷寄存器的操作是具有副作用的,比如通過寫icr寄存器發(fā)送IPI中斷,這時(shí)就需要觸發(fā)VM exit,由本地LAPIC向目標(biāo)LAPIC發(fā)送IPI中斷。

王柏生 資深技術(shù)專家,先后就職于中科院軟件所、紅旗Linux和百度,現(xiàn)任百度主任架構(gòu)師。在操作系統(tǒng)、虛擬化技術(shù)、分布式系統(tǒng)、云計(jì)算、自動(dòng)駕駛等相關(guān)領(lǐng)域耕耘多年,有著豐富的實(shí)踐經(jīng)驗(yàn)。著有暢銷書《深度探索Linux操作系統(tǒng)》(2013年出版)。

謝廣軍 計(jì)算機(jī)專業(yè)博士,畢業(yè)于南開大學(xué)計(jì)算機(jī)系。資深技術(shù)專家,多年的IT行業(yè)工作經(jīng)驗(yàn)。現(xiàn)擔(dān)任百度智能云副總經(jīng)理,負(fù)責(zé)云計(jì)算相關(guān)產(chǎn)品的研發(fā)。多年來一直從事操作系統(tǒng)、虛擬化技術(shù)、分布式系統(tǒng)、大數(shù)據(jù)、云計(jì)算等相關(guān)領(lǐng)域的研發(fā)工作,實(shí)踐經(jīng)驗(yàn)豐富。

本文轉(zhuǎn)載自微信公眾號(hào)「Linux閱碼場」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Linux閱碼場公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: Linux閱碼場
相關(guān)推薦

2018-03-08 16:04:19

2021-12-01 07:02:16

虛擬化LinuxCPU

2020-11-23 07:19:15

Linux虛擬化KVM

2013-05-21 09:47:45

虛擬化存儲(chǔ)虛擬化

2013-11-29 10:24:52

Cluster設(shè)計(jì)資源池

2009-08-03 13:19:07

WindowsServ虛擬化Hyper-V

2012-11-19 09:36:35

虛擬化云計(jì)算核心

2023-03-30 07:39:57

云計(jì)算虛擬化CPU

2019-11-06 11:10:24

VMware虛擬化服務(wù)器

2023-09-19 10:00:34

Linux虛擬

2021-12-08 08:41:31

Linux 中斷子系統(tǒng)Linux 系統(tǒng)

2011-01-05 09:34:47

linuxqq問題

2009-12-25 10:05:00

Linux虛擬化Xen虛擬化

2021-07-05 06:51:42

Python虛擬環(huán)境

2021-11-02 10:53:56

Linux機(jī)制CPU

2010-02-23 12:03:37

CentOS系統(tǒng)

2021-10-25 07:57:45

Node ExportLinux 監(jiān)控

2010-05-26 15:18:28

桌面虛擬化

2019-11-12 14:48:00

Linux桌面虛擬化KVM

2011-03-28 18:25:03

ibmdwLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久久综合之合合综合久久| 99超碰麻豆| 久久久久久久久久久综合| 日韩超碰人人爽人人做人人添| 日本黄色一区二区| 黄色一级片黄色| 国产精品入口66mio| 国模吧一区二区三区| 性网站在线观看| 性感美女极品91精品| 老司机午夜av| 日本美女一区二区三区| 成人在线中文字幕| 蜜桃在线一区| 亚洲另类激情图| 黄色免费在线网站| 亚洲h在线观看| 日本人视频jizz页码69| 国产一区欧美一区| 欧美精品一区在线| 国产精品magnet| 国产精品一香蕉国产线看观看| 秋霞午夜一区二区三区视频| 精品国产sm最大网站| 在线观看的av网站| 在线91免费看| 欧美亚洲丝袜| 国内精品伊人| fc2成人免费人成在线观看播放| 久久精品亚洲精品国产欧美kt∨| 久久久www成人免费毛片麻豆 | 精品电影一区二区| 青青青手机在线视频观看| 亚洲欧美日韩在线不卡| 亚洲视频在线观看一区二区三区| 丰满少妇久久久久久久| 在线播放豆国产99亚洲| 美女诱惑一区二区| 一本一道久久a久久精品综合| 国产农村妇女精品一区二区| 成人欧美一区二区三区在线观看| 久久一区二区中文字幕| 国产97在线播放| 国产一区二区精品福利地址| 8x拔播拔播x8国产精品| 欧美激情久久久久久久久久久| 欧美精品18videos性欧| caoporn成人| 97精品一区二区三区| 高潮按摩久久久久久av免费| 97免费中文视频在线观看| 秋霞在线一区| 国产精品久久久久久久久久久久久 | 中文字幕久久亚洲| 成人午夜av在线| 樱空桃在线播放| 欧美人妖视频| 一区二区三区欧美日| 成人在线国产视频| 午夜精品福利一区二区蜜股av| 麻豆一区二区三区在线观看| 91色在线看| 亚洲成人aaa| 日韩一区二区三区在线免费观看| 精品国产区一区二区三区在线观看| 久久天堂av| 97人人爽人人喊人人模波多| 免费av一区| 国产亚洲情侣一区二区无| 日韩不卡一区二区三区| 欧美美女黄色网| 国产精品全国免费观看高清| 中文字幕在线免费观看| 欧美成人艳星乳罩| 国产精选久久| 国产日韩精品一区二区| 在线亚洲成人| 亚洲第一页在线视频| 久久这里只精品最新地址| 美女做a视频| 日韩精品在线一区二区| 亚洲影视资源| 92国产精品视频| 久久99国产精品尤物| 亚洲成人福利在线观看| 欧美中文字幕久久| 成人在线免费电影网站| 国产精品女主播视频| 奇米影视一区二区三区| 99久久国产宗和精品1上映| 色综合天天做天天爱| 欧美色999| 91久久精品国产91性色| 狠狠色丁香久久婷婷综合丁香| jizz18女人| 日韩欧美国产电影| 日韩精品a在线观看91| 欧美一区二区视频17c| 国产亚洲欧洲一区高清在线观看| 国产视频网站在线| 欧美美女操人视频| 精品动漫3d一区二区三区免费| 一女被多男玩喷潮视频| 欧美性猛交一区二区三区精品| 国产精品久久久久久妇女| 亚洲xxx视频| 久久久蜜臀国产一区二区| a天堂中文在线88| 国模精品视频一区二区三区| 秋霞电影网一区二区| 嫩草嫩草嫩草| 中文字幕免费国产精品| 国产精品vip| 四虎最新网站| 中文国产成人精品| 国产女优一区| 91在线九色porny| www.99久久热国产日韩欧美.com| 亚洲高清激情| 日日噜噜噜夜夜爽爽狠狠| 一区二区三欧美| 老妇喷水一区二区三区| 在线看你懂得| 高清一区二区三区日本久| 极品美女销魂一区二区三区免费| 国产在线精品播放| 色8久久精品久久久久久蜜| 黑色丝袜福利片av久久| 成人在线免费观看视频网站| 午夜a成v人精品| 欧美日韩久久精品| 亚洲一二三区精品| 欧美va亚洲va在线观看蝴蝶网| 国产乱妇无码大片在线观看| 欧美成人一级| 国产精品视频一区二区图片| 国产精品视频自在线| 5月丁香婷婷综合| 国产亚洲自拍一区| 久久精品亚洲| 6080亚洲理论片在线观看| 国外av网站| 色综合久久久久久久久五月| 色妞久久福利网| 欧美日韩性生活视频| 九九**精品视频免费播放| 日韩欧美精品一区二区三区| 亚洲国产一区二区精品视频 | 视频一区三区| 高跟丝袜欧美一区| 亚洲国产精品91| 国产一级激情| 成人黄色av网站| 亚洲午夜av久久乱码| 欧美性猛交xxxx免费看| 日韩在线中文字| 2022国产精品| 国产精品女主播在线观看| 在线欧美日韩精品| 中文字幕视频在线免费观看| 伊人青青综合网站| 欧美日韩激情| 久久久无码精品亚洲日韩按摩| 亚洲精品mv| 鲁一鲁一鲁一鲁一色| 国产97在线亚洲| 在线视频欧美日韩| 亚洲一区第一页| 亚洲免费伊人电影在线观看av| 欧美视频一区二区三区…| 亚洲国产一二三| 国产一区二区三区在线观看免费| 亚洲激情成人| 香蕉成人久久| www.欧美.com| 久99久精品视频免费观看| 亚洲激情二区| 国产一区久久久| 亚洲精品午夜久久久| 在线看一区二区| 91精品国产免费| 久久久亚洲精选| 国产日韩欧美综合精品| 国产精品久久久久久久久久直播| 国产欧美在线观看| 99精品一级欧美片免费播放| 无码无遮挡又大又爽又黄的视频| 色婷五月综激情亚洲综合| 色爱综合区网| 国产伦精品一区二区三区在线播放 | 成人免费在线视频| 欧美亚洲一区二区在线观看| 精品国产一区av| 91国内揄拍国内精品对白| 视频二区一区| 色网在线视频| 精品国产91乱码一区二区三区四区| 国产精品传媒精东影业在线| 久久免费的精品国产v∧| 日韩美女视频一区二区在线观看|