欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種虛擬化下的中斷動(dòng)態(tài)分發(fā)方法

文檔序號(hào):6384095閱讀:475來(lái)源:國(guó)知局
專利名稱:一種虛擬化下的中斷動(dòng)態(tài)分發(fā)方法
技術(shù)領(lǐng)域
本發(fā)明屬于虛擬化領(lǐng)域,更具體地,涉及一種虛擬化下的中斷動(dòng)態(tài)分發(fā)方法。
背景技術(shù)
虛擬化技術(shù)是云計(jì)算技術(shù)的基礎(chǔ),I/O虛擬化的性能將直接影響虛擬化技術(shù)的發(fā)展,特別是網(wǎng)絡(luò)I/o的虛擬化性能。在服務(wù)器虛擬化領(lǐng)域,高速網(wǎng)絡(luò)設(shè)備(如千兆以太網(wǎng)卡等)短時(shí)間內(nèi)會(huì)帶來(lái)內(nèi)大量的中斷請(qǐng)求;因此高效的中斷虛擬化技術(shù)就顯得更加重要了。在X86平臺(tái)的SMP架構(gòu)中,外設(shè)的中斷線連接到一個(gè)名為I/O高級(jí)可編程中斷控制器(Input/OutputAdvanced Programmable Interrupt Controller,簡(jiǎn)稱 I/O APIC)上。此外,X86微處理器當(dāng)前所有CPU都含有一個(gè)本地高級(jí)可編程中斷控制器(Advanced ProgrammableInterrupt Controller,簡(jiǎn)稱APIC)。每個(gè)本地APIC都有32位的寄存器、一個(gè)內(nèi)部時(shí)鐘、一個(gè)本地定時(shí)設(shè)備及為本地APIC保留的兩條額外的IRQ線LINTO和LINTl。所有的本地APIC都連接到一個(gè)外部1/0 APIC,形成一個(gè)多APIC的系統(tǒng)。1/0 APIC其中最重要的是中斷重定向表,表中的信息負(fù)責(zé)將每個(gè)外部IRQ轉(zhuǎn)化成一條消息并通過(guò)APIC總線發(fā)送給一個(gè)或者多個(gè)APIC單元。因此,在非虛擬化的情況下,外設(shè)的IRQ由1/0 APIC負(fù)責(zé)分發(fā)。如圖1所示,在引入了虛擬化技術(shù)后,由于CPU虛擬化增加了虛擬微處理器,中斷的處理響應(yīng)的增加了虛擬中斷層。但目前的中斷虛擬化技術(shù)沒(méi)有完全對(duì)I/O APIC多APIC系統(tǒng)進(jìn)行虛擬化,導(dǎo)致了虛擬化中斷都只能簡(jiǎn)單的進(jìn)行靜態(tài)分發(fā),默認(rèn)都是分發(fā)給第一個(gè)虛擬微處理器,而不能進(jìn)行動(dòng)態(tài)分發(fā)。具體來(lái)說(shuō),就是虛擬機(jī)管理器只能將所有的物理中斷發(fā)送給驅(qū)動(dòng)域的第一個(gè)虛擬微處理器,即所有的物理中斷請(qǐng)求都需要由驅(qū)動(dòng)域的第一個(gè)微處理器來(lái)處理;虛擬域只能將所有的域間中斷都發(fā)送給其他域的第一個(gè)虛擬微處理器,即所有的域間中斷請(qǐng)求都需要由虛擬域的第一個(gè)微處理器來(lái)處理。然而,現(xiàn)有的虛擬化下的中斷分發(fā)方法存在以下問(wèn)題1、中斷請(qǐng)求集中在第一個(gè)微處理器上,造成中斷分發(fā)在多核虛擬域的負(fù)載不均衡;2、虛擬1/0的服務(wù)延遲增大,由于中斷請(qǐng)求在單一微處理器上排隊(duì),排隊(duì)的延遲比非虛擬化下的增大,造成1/0的服務(wù)延遲增大;3、分離驅(qū)動(dòng)模型的中斷請(qǐng)求不能并發(fā)處理,即域間中斷只能在驅(qū)動(dòng)域的第一個(gè)虛擬微處理器和其他域的第一個(gè)微處理器之間發(fā)送,沒(méi)有充分利用虛擬域的多核特性,從而造成了分離驅(qū)動(dòng)模型的1/0性能下降。

發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種虛擬化下的中斷動(dòng)態(tài)分發(fā)方法,旨在解決現(xiàn)有方法中存在的中斷請(qǐng)求負(fù)載不均衡、中斷請(qǐng)求延遲和分離驅(qū)動(dòng)模型的并發(fā)處理的問(wèn)題。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種虛擬化下的中斷動(dòng)態(tài)分發(fā)方法,包括以下步驟( I)虛擬機(jī)管理器對(duì)其虛擬高級(jí)可編程中斷處理器進(jìn)行初始化,并且虛擬域?qū)ζ浔镜乜筛呒?jí)編程中斷控制器進(jìn)行初始化;(2)虛擬機(jī)管理器接收來(lái)自于外設(shè)的物理中斷請(qǐng)求;(3)虛擬機(jī)管理器根據(jù)物理中斷請(qǐng)求判斷其分發(fā)方式是靜態(tài)分發(fā)方式,還是動(dòng)態(tài)分發(fā)方式,如果是靜態(tài)分發(fā)方式,則進(jìn)入步驟(5),如果是動(dòng)態(tài)分發(fā)方式,則進(jìn)入步驟(4);(4)虛擬機(jī)管理器檢查驅(qū)動(dòng)域中虛擬微處理器的配置,并根據(jù)配置確定目的虛擬微處理器,然后進(jìn)入步驟(6);(5)虛擬機(jī)管理器根據(jù)物理中斷請(qǐng)求確定目的虛擬微處理器;(6)虛擬機(jī)管理器通過(guò)目的虛擬微處理器的事件通道將物理中斷請(qǐng)求發(fā)送到該目的虛擬微處理器;(7)驅(qū)動(dòng)域根據(jù)物理中斷請(qǐng)求生成對(duì)應(yīng)的域間中斷請(qǐng)求;(8)驅(qū)動(dòng)域根據(jù)域間中斷請(qǐng)求判斷其分發(fā)方式是靜態(tài)分發(fā)方式,還是動(dòng)態(tài)分發(fā)方式;如果是靜態(tài)分發(fā)方式,則進(jìn)入步驟(10),如果是動(dòng)態(tài)分發(fā)方式,則進(jìn)入步驟(9);(9)驅(qū)動(dòng)域檢查其他域中虛擬微處理器的配置,并根據(jù)配置確定目的虛擬微處理器,然后進(jìn)入步驟(11);( 10)驅(qū)動(dòng)域根據(jù)域間中斷請(qǐng)求確定目的虛擬微處理器;( 11)驅(qū)動(dòng)域通過(guò)目的虛擬微處理器的事件通道將域間中斷請(qǐng)求發(fā)送到該目的虛擬微處理器。在步驟(I)中,虛擬機(jī)管理器將虛擬I/O APIC的分發(fā)方式設(shè)置為動(dòng)態(tài)分發(fā)方式,并且虛擬域設(shè)置本地PIC中的優(yōu)先級(jí)和仲裁優(yōu)先級(jí)。虛擬域包括驅(qū)動(dòng)域和其他域,外設(shè)包括外部存儲(chǔ)器、網(wǎng)絡(luò)設(shè)備,物理中斷請(qǐng)求包括物理請(qǐng)求編號(hào)、物理請(qǐng)求地址。步驟(3)中,虛擬機(jī)管理器是根據(jù)物理中斷請(qǐng)求中的物理請(qǐng)求編號(hào)及虛擬機(jī)管理器中的配置文件來(lái)判斷分發(fā)方式的類型。其他域和虛擬微處理器的配置均包括其優(yōu)先級(jí)和仲裁優(yōu)先級(jí)。步驟(7)中,通過(guò)驅(qū)動(dòng)域中的后端驅(qū)動(dòng)產(chǎn)生域間中斷請(qǐng)求包括有域間中斷請(qǐng)求的編號(hào)和地址等信息。步驟(8)中,驅(qū)動(dòng)域是根據(jù)域間中斷請(qǐng)求中的域間中斷請(qǐng)求編號(hào)及驅(qū)動(dòng)域中的配置文件來(lái)判斷分發(fā)方式的類型。步驟(5)包括以下子步驟(5-1)虛擬機(jī)管理器中的虛擬I/O APIC判斷在驅(qū)動(dòng)域中查找到的優(yōu)先級(jí)最低的虛擬微處理器的數(shù)量是I個(gè)還是多個(gè),如果是I個(gè),則進(jìn)入步驟(5-5),如果是多個(gè),則進(jìn)入步驟(5-2);(5-2)虛擬I/O APIC確定本地APIC的仲裁優(yōu)先級(jí)中最低的一個(gè)仲裁優(yōu)先級(jí)所對(duì)應(yīng)的虛擬微處理器;(5-3)虛擬I/O APIC將該虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)設(shè)置為0,將其他虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加I ;(5-4)虛擬I/O APIC判斷所有虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)是否有大于15的,如果有,則將步驟(5-2)中確定的虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加1,過(guò)程結(jié)束;否則過(guò)程結(jié)束;(5-5)虛擬I/O APIC將物理中斷請(qǐng)求發(fā)送到該虛擬微處理器。步驟(10)包括以下子步驟( 10-1)驅(qū)動(dòng)域中的虛擬I/O APIC判斷在其他域中查找到的優(yōu)先級(jí)最低的虛擬微處理器的數(shù)量是I個(gè)還是多個(gè),如果是I個(gè),則進(jìn)入步驟(10-5),如果是多個(gè),則進(jìn)入步驟(10-2);(10-2)虛擬I/O APIC確定本地APIC的仲裁優(yōu)先級(jí)中最低的一個(gè)仲裁優(yōu)先級(jí)所對(duì)應(yīng)的虛擬微處理器;(10-3)虛擬I/O APIC將該虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)設(shè)置為0,將其他虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加I ;(10-4)虛擬I/O APIC判斷所有虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)是否有大于15的,如果有,則將步驟(5-2)中確定的虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加1,過(guò)程結(jié)束;否則過(guò)程結(jié)束;(10-5)虛擬I/O APIC將域間中斷請(qǐng)求發(fā)送到該虛擬微處理器。通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的有益效果1、能實(shí)現(xiàn)負(fù)載均衡由于采用了步驟(I)、(5-1)、(5-4)、(10-1)和(10-4),從而使得所有的虛擬微處理器都可以參數(shù)響應(yīng)和處理物理中斷請(qǐng)求和域間中斷請(qǐng)求,即中斷請(qǐng)求被均衡到所有的虛擬處理器上,中斷請(qǐng)求本均衡的分布在各個(gè)虛擬微處理器上;2、減小了虛擬I/O的服務(wù)延遲由于采用了步驟(5-2)、(5-4)、(10-2)和(10-4),物理中斷請(qǐng)求和域間中斷請(qǐng)求隊(duì)列從單一隊(duì)列增加到每個(gè)微處理器都有一個(gè)隊(duì)列,從而使得虛擬I/O的中斷請(qǐng)求的服務(wù)延遲減??;3、增加了分離驅(qū)動(dòng)模型中的中斷請(qǐng)求處理的并發(fā)度由于采用了步驟(10-2)、(10-3)和(10-4),域間中斷請(qǐng)求可以再驅(qū)動(dòng)域和其他域的所有虛擬微處理器之間傳遞,而不是單一地從驅(qū)動(dòng)域的第一個(gè)微處理器和其他域的第一個(gè)微處理器之間傳遞,充分利用的虛擬域的多核特性,增加了分離驅(qū)動(dòng)模型的中斷請(qǐng)求處理的并發(fā)度。


圖1為現(xiàn)有的虛擬化下中斷分發(fā)方法的框架圖。圖2為本發(fā)明虛擬化下的中斷動(dòng)態(tài)分發(fā)方法的框架圖。圖3為本發(fā)明虛擬化下的中斷動(dòng)態(tài)分發(fā)方法的流程圖。圖4為本發(fā)明方法中步驟(5)的細(xì)化流程圖。圖5為本發(fā)明方法中步驟(10)的細(xì)化流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
首先對(duì)本發(fā)明種的技術(shù)術(shù)語(yǔ)進(jìn)行解釋和定義高級(jí)可編程中斷控制器英文為I/O APIC,安裝在微機(jī)主板上的可編程組件,負(fù)責(zé)將外部中斷請(qǐng)求轉(zhuǎn)發(fā)給微處理器的內(nèi)部中斷控制器。事件通道英文為Event Channel,虛擬機(jī)管理器與虛擬機(jī)以及虛擬機(jī)與虛擬機(jī)之間的異步通信方法。驅(qū)動(dòng)域英文為Driver Domain,在半虛擬化模型中用于管理設(shè)備的虛擬機(jī),具有操作相關(guān)設(shè)備的特權(quán),驅(qū)動(dòng)域包含設(shè)備的驅(qū)動(dòng)程序和設(shè)備的后端驅(qū)動(dòng)程序。物理中斷英文縮寫(xiě)為pIRQ,是一類由虛擬機(jī)管理器發(fā)送給驅(qū)動(dòng)域的虛擬中斷請(qǐng)求,這類中斷請(qǐng)求模擬實(shí)現(xiàn)真實(shí)外設(shè)發(fā)送的中斷請(qǐng)求。域間中斷英文縮寫(xiě)為Inter-domain IRQ,是一類在虛擬域與虛擬域之間發(fā)送的虛擬中斷請(qǐng)求,這類中斷請(qǐng)求傳遞分離驅(qū)動(dòng)模型中斷額中斷請(qǐng)求。下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步作詳細(xì)的說(shuō)明。如圖3所示,本發(fā)明虛擬化下的中斷動(dòng)態(tài)分發(fā)方法包括以下步驟( I)虛擬機(jī)管理器對(duì)其虛擬高級(jí)可編程中斷處理器進(jìn)行初始化,并且虛擬域?qū)ζ浔镜乜筛呒?jí)編程中斷控制器進(jìn)行初始化;虛擬域包括有驅(qū)動(dòng)域和其他域,具體而言,虛擬機(jī)管理器將虛擬I/O APIC的分發(fā)方式設(shè)置為動(dòng)態(tài)分發(fā)方式,并且虛擬域設(shè)置本地PIC中的優(yōu)先級(jí)和仲裁優(yōu)先級(jí);(2)虛擬機(jī)管理器接收來(lái)自于外設(shè)的物理中斷請(qǐng)求;在本實(shí)施方式中,外設(shè)包括外部存儲(chǔ)器、網(wǎng)絡(luò)設(shè)備等,物理中斷請(qǐng)求包括物理請(qǐng)求編號(hào)、物理請(qǐng)求地址等信息;(3)虛擬機(jī)管理器根據(jù)物理中斷請(qǐng)求判斷其分發(fā)方式是靜態(tài)分發(fā)方式,還是動(dòng)態(tài)分發(fā)方式,如果是靜態(tài)分發(fā)方式,則進(jìn)入步驟(5),如果是動(dòng)態(tài)分發(fā)方式,則進(jìn)入步驟(4);具體而言,虛擬機(jī)管理器是根據(jù)物理中斷請(qǐng)求中的物理請(qǐng)求編號(hào)及虛擬機(jī)管理器中的配置文件來(lái)判斷分發(fā)方式的類型;(4)虛擬機(jī)管理器檢查驅(qū)動(dòng)域中虛擬微處理器的配置,并根據(jù)配置確定目的虛擬微處理器;虛擬微處理器的配置包括其優(yōu)先級(jí)和仲裁優(yōu)先級(jí),然后進(jìn)入步驟(6);(5)虛擬機(jī)管理器根據(jù)物理中斷請(qǐng)求確定目的虛擬微處理器;(6)虛擬機(jī)管理器通過(guò)目的虛擬微處理器的事件通道將物理中斷請(qǐng)求發(fā)送到該目的虛擬微處理器;(7)驅(qū)動(dòng)域根據(jù)物理中斷請(qǐng)求生成對(duì)應(yīng)的域間中斷請(qǐng)求;具體而言,通過(guò)驅(qū)動(dòng)域中的后端驅(qū)動(dòng)產(chǎn)生域間中斷請(qǐng)求包括有域間中斷請(qǐng)求的編號(hào)和地址等信息;(8)驅(qū)動(dòng)域根據(jù)域間中斷請(qǐng)求判斷其分發(fā)方式是靜態(tài)分發(fā)方式,還是動(dòng)態(tài)分發(fā)方式;如果是靜態(tài)分發(fā)方式,則進(jìn)入步驟(10),如果是動(dòng)態(tài)分發(fā)方式,則進(jìn)入步驟(9);具體而言,驅(qū)動(dòng)域是根據(jù)域間中斷請(qǐng)求中的域間中斷請(qǐng)求編號(hào)及驅(qū)動(dòng)域中的配置文件來(lái)判斷分發(fā)方式的類型;(9)驅(qū)動(dòng)域檢查其他域中虛擬微處理器的配置,并根據(jù)配置確定目的虛擬微處理器;其他域的配置包括其優(yōu)先級(jí)和仲裁優(yōu)先級(jí),然后進(jìn)入步驟(11);( 10)驅(qū)動(dòng)域根據(jù)域間中斷請(qǐng)求確定目的虛擬微處理器;( 11)驅(qū)動(dòng)域通過(guò)目的虛擬微處理器的事件通道將域間中斷請(qǐng)求發(fā)送到該目的虛擬微處理器。
如圖4所示,本發(fā)明方法中的步驟(5)包括以下子步驟(5-1)虛擬機(jī)管理器中的虛擬I/O APIC判斷在驅(qū)動(dòng)域中查找到的優(yōu)先級(jí)最低的虛擬微處理器的數(shù)量是I個(gè)還是多個(gè),如果是I個(gè),則進(jìn)入步驟(5-5),如果是多個(gè),則進(jìn)入步驟(5-2);具體而言,虛擬I/O APIC通過(guò)讀取本地APIC中的優(yōu)先級(jí)來(lái)獲取優(yōu)先級(jí)最低的虛擬微處理器的數(shù)量;(5-2)虛擬I/O APIC確定本地APIC的仲裁優(yōu)先級(jí)中最低的一個(gè)仲裁優(yōu)先級(jí)所對(duì)應(yīng)的虛擬微處理器;(5-3)虛擬I/O APIC將該虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)設(shè)置為0,將其他虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加I ;(5-4)虛擬I/O APIC判斷所有虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)是否有大于15的,如果有,則將步驟(5-2)中確定的虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加1,過(guò)程結(jié)束;否則過(guò)程結(jié)束;(5-5)虛擬I/O APIC將物理中斷請(qǐng)求發(fā)送到該虛擬微處理器。如圖5所示,本發(fā)明方法中的步驟(10)包括以下子步驟(10-1)驅(qū)動(dòng)域中的虛擬I/O APIC判斷在其他域中查找到的優(yōu)先級(jí)最低的虛擬微處理器的數(shù)量是I個(gè)還是多個(gè),如果是I個(gè),則進(jìn)入步驟(10-5),如果是多個(gè),則進(jìn)入步驟(10-2);具體而言,虛擬I/O APIC通過(guò)讀取本地APIC中的優(yōu)先級(jí)來(lái)獲取優(yōu)先級(jí)最低的虛擬微處理器的數(shù)量;(10-2)虛擬I/O APIC確定本地APIC的仲裁優(yōu)先級(jí)中最低的一個(gè)仲裁優(yōu)先級(jí)所對(duì)應(yīng)的虛擬微處理器;(10-3)虛擬I/O APIC將該虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)設(shè)置為0,將其他虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加I ;(10-4)虛擬I/O APIC判斷所有虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)是否有大于15的,如果有,則將步驟(5-2)中確定的虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加1,過(guò)程結(jié)束;否則過(guò)程結(jié)束;(10-5)虛擬I/O APIC將域間中斷請(qǐng)求發(fā)送到該虛擬微處理器。如圖2所示,在本發(fā)明中提出的方法中,物理中斷請(qǐng)求以輪轉(zhuǎn)的方式在驅(qū)動(dòng)域所有可用的虛擬微處理器之間進(jìn)行分發(fā),域間中斷請(qǐng)求以輪轉(zhuǎn)的方式在虛擬域所有可用虛擬微處理器之間進(jìn)行分發(fā)。通過(guò)圖1和圖2的對(duì)比,可以知道本發(fā)明提出了虛擬化下的中斷請(qǐng)求(包括物理中斷請(qǐng)求和域間中斷請(qǐng)求)的分發(fā)方法以靜態(tài)分發(fā)或者動(dòng)態(tài)分發(fā)的方式在可用虛擬微處理器之間分發(fā),而不是單一分發(fā)給第一個(gè)虛擬微處理器。本發(fā)明提出的分發(fā)方法解決了虛擬化下的中斷負(fù)載均衡問(wèn)題;有效地解決了物理CPU的負(fù)載均衡問(wèn)題,特別是在虛擬微處理器直接綁定到物理CPU的情況下的物理CPU負(fù)載不均衡情況;最后達(dá)到改善多核服務(wù)器下的I/o虛擬化性能。本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種虛擬化下的中斷動(dòng)態(tài)分發(fā)方法,其特征在于,包括以下步驟 (1)虛擬機(jī)管理器對(duì)其虛擬高級(jí)可編程中斷處理器進(jìn)行初始化,并且虛擬域?qū)ζ浔镜乜筛呒?jí)編程中斷控制器進(jìn)行初始化; (2)虛擬機(jī)管理器接收來(lái)自于外設(shè)的物理中斷請(qǐng)求; (3)虛擬機(jī)管理器根據(jù)物理中斷請(qǐng)求判斷其分發(fā)方式是靜態(tài)分發(fā)方式,還是動(dòng)態(tài)分發(fā)方式,如果是靜態(tài)分發(fā)方式,則進(jìn)入步驟(5),如果是動(dòng)態(tài)分發(fā)方式,則進(jìn)入步驟(4); (4)虛擬機(jī)管理器檢查驅(qū)動(dòng)域中虛擬微處理器的配置,并根據(jù)配置確定目的虛擬微處理器,然后進(jìn)入步驟(6); (5)虛擬機(jī)管理器根據(jù)物理中斷請(qǐng)求確定目的虛擬微處理器; (6)虛擬機(jī)管理器通過(guò)目的虛擬微處理器的事件通道將物理中斷請(qǐng)求發(fā)送到該目的虛擬微處理器; (7)驅(qū)動(dòng)域根據(jù)物理中斷請(qǐng)求生成對(duì)應(yīng)的域間中斷請(qǐng)求; (8)驅(qū)動(dòng)域根據(jù)域間中斷請(qǐng)求判斷其分發(fā)方式是靜態(tài)分發(fā)方式,還是動(dòng)態(tài)分發(fā)方式;如果是靜態(tài)分發(fā)方式,則進(jìn)入步驟(10),如果是動(dòng)態(tài)分發(fā)方式,則進(jìn)入步驟(9); (9)驅(qū)動(dòng)域檢查其他域中虛擬微處理器的配置,并根據(jù)配置確定目的虛擬微處理器,然后進(jìn)入步驟(11); (10)驅(qū)動(dòng)域根據(jù)域間中斷請(qǐng)求確定目的虛擬微處理器; (11)驅(qū)動(dòng)域通過(guò)目的虛擬微處理器的事件通道將域間中斷請(qǐng)求發(fā)送到該目的虛擬微處理器。
2.根據(jù)權(quán)利要求1所述的中斷動(dòng)態(tài)分發(fā)方法,其特征在于,在步驟(I)中,虛擬機(jī)管理器將虛擬I/O APIC的分發(fā)方式設(shè)置為動(dòng)態(tài)分發(fā)方式,并且虛擬域設(shè)置本地PIC中的優(yōu)先級(jí)和仲裁優(yōu)先級(jí)。
3.根據(jù)權(quán)利要求1所述的中斷動(dòng)態(tài)分發(fā)方法,其特征在于, 虛擬域包括驅(qū)動(dòng)域和其他域; 外設(shè)包括外部存儲(chǔ)器、網(wǎng)絡(luò)設(shè)備; 物理中斷請(qǐng)求包括物理請(qǐng)求編號(hào)、物理請(qǐng)求地址。
4.根據(jù)權(quán)利要求1所述的中斷動(dòng)態(tài)分發(fā)方法,其特征在于,步驟(3)中,虛擬機(jī)管理器是根據(jù)物理中斷請(qǐng)求中的物理請(qǐng)求編號(hào)及虛擬機(jī)管理器中的配置文件來(lái)判斷分發(fā)方式的類型。
5.根據(jù)權(quán)利要求1所述的中斷動(dòng)態(tài)分發(fā)方法,其特征在于,其他域和虛擬微處理器的配置均包括其優(yōu)先級(jí)和仲裁優(yōu)先級(jí)。
6.根據(jù)權(quán)利要求1所述的中斷動(dòng)態(tài)分發(fā)方法,其特征在于,步驟(7)中,通過(guò)驅(qū)動(dòng)域中的后端驅(qū)動(dòng)產(chǎn)生域間中斷請(qǐng)求包括有域間中斷請(qǐng)求的編號(hào)和地址等信息。
7.根據(jù)權(quán)利要求1所述的中斷動(dòng)態(tài)分發(fā)方法,其特征在于,步驟(8)中,驅(qū)動(dòng)域是根據(jù)域間中斷請(qǐng)求中的域間中斷請(qǐng)求編號(hào)及驅(qū)動(dòng)域中的配置文件來(lái)判斷分發(fā)方式的類型。
8.根據(jù)權(quán)利要求1所述的中斷動(dòng)態(tài)分發(fā)方法,其特征在于,步驟(5)包括以下子步驟 (5-1)虛擬機(jī)管理器中的虛擬I/O APIC判斷在驅(qū)動(dòng)域中查找到的優(yōu)先級(jí)最低的虛擬微處理器的數(shù)量是I個(gè)還是多個(gè),如果是I個(gè),則進(jìn)入步驟(5-5),如果是多個(gè),則進(jìn)入步驟(5-2);(5-2)虛擬I/O APIC確定本地APIC的仲裁優(yōu)先級(jí)中最低的一個(gè)仲裁優(yōu)先級(jí)所對(duì)應(yīng)的虛擬微處理器; (5-3)虛擬I/O APIC將該虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)設(shè)置為0,將其他虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加I ; (5-4)虛擬I/O APIC判斷所有虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)是否有大于15的,如果有,則將步驟(5-2)中確定的虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加.1,過(guò)程結(jié)束;否則過(guò)程結(jié)束; (5-5)虛擬I/O APIC將物理中斷請(qǐng)求發(fā)送到該虛擬微處理器。
9.根據(jù)權(quán)利要求1所述的中斷動(dòng)態(tài)分發(fā)方法,其特征在于,步驟(10)包括以下子步驟 (10-1)驅(qū)動(dòng)域中的虛擬I/O APIC判斷在其他域中查找到的優(yōu)先級(jí)最低的虛擬微處理器的數(shù)量是I個(gè)還是多個(gè),如果是I個(gè),則進(jìn)入步驟(10-5),如果是多個(gè),則進(jìn)入步驟(10-2); (10-2)虛擬I/O APIC確定本地APIC的仲裁優(yōu)先級(jí)中最低的一個(gè)仲裁優(yōu)先級(jí)所對(duì)應(yīng)的虛擬微處理器; (10-3)虛擬I/O APIC將該虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)設(shè)置為0,將其他虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加I ; (10-4)虛擬I/O APIC判斷所有虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)是否有大于15的,如果有,則將步驟(5-2)中確定的虛擬微處理器對(duì)應(yīng)的本地APIC的仲裁優(yōu)先級(jí)加.I,過(guò)程結(jié)束;否則過(guò)程結(jié)束; (10-5)虛擬I/O APIC將域間中斷請(qǐng)求發(fā)送到該虛擬微處理器。
全文摘要
本發(fā)明公開(kāi)了一種虛擬化下的中斷動(dòng)態(tài)分發(fā)方法,包括虛擬機(jī)管理器對(duì)其虛擬高級(jí)可編程中斷處理器進(jìn)行初始化,并且虛擬域?qū)ζ浔镜乜筛呒?jí)編程中斷控制器進(jìn)行初始化,虛擬機(jī)管理器接收來(lái)自于外設(shè)的物理中斷請(qǐng)求,虛擬機(jī)管理器根據(jù)物理中斷請(qǐng)求判斷其分發(fā)方式是靜態(tài)分發(fā)方式,還是動(dòng)態(tài)分發(fā)方式,如果是動(dòng)態(tài)分發(fā)方式,則虛擬機(jī)管理器檢查驅(qū)動(dòng)域中虛擬微處理器的配置,并根據(jù)配置確定目的虛擬微處理器,然后虛擬機(jī)管理器通過(guò)目的虛擬微處理器的事件通道將物理中斷請(qǐng)求發(fā)送到該目的虛擬微處理器,驅(qū)動(dòng)域根據(jù)物理中斷請(qǐng)求生成對(duì)應(yīng)的域間中斷請(qǐng)求。本發(fā)明能夠解決現(xiàn)有方法中存在的中斷請(qǐng)求負(fù)載不均衡、中斷請(qǐng)求延遲和分離驅(qū)動(dòng)模型的并發(fā)處理的問(wèn)題。
文檔編號(hào)G06F9/445GK103049333SQ20121053745
公開(kāi)日2013年4月17日 申請(qǐng)日期2012年12月12日 優(yōu)先權(quán)日2012年12月12日
發(fā)明者金海 , 邵志遠(yuǎn), 魯志強(qiáng), 鄭龍 申請(qǐng)人:華中科技大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
霍林郭勒市| 富阳市| 萨嘎县| 霍州市| 巴东县| 吉水县| 惠东县| 城步| 通州市| 海丰县| 宜丰县| 疏附县| 田林县| 监利县| 修武县| 铅山县| 河西区| 洪江市| 胶南市| 靖宇县| 松滋市| 揭西县| 白银市| 舟山市| 睢宁县| 广饶县| 临沂市| 哈密市| 苍溪县| 确山县| 台州市| 县级市| 临西县| 曲周县| 连南| 定襄县| 丹凤县| 会泽县| 防城港市| 苏尼特右旗| 邯郸县|