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

一種基于當(dāng)前vcpu調(diào)度狀態(tài)的動態(tài)中斷均衡映射方法

文檔序號:6535805閱讀:269來源:國知局
一種基于當(dāng)前vcpu調(diào)度狀態(tài)的動態(tài)中斷均衡映射方法
【專利摘要】本發(fā)明公開了基于當(dāng)前VCPU調(diào)度狀態(tài)的動態(tài)中斷均衡映射方法,當(dāng)SMP虛擬機(jī)的虛擬I/O?APIC接收到一個虛擬中斷后,需要將該虛擬中斷映射給虛擬機(jī)的某一個VCPU時,根據(jù)當(dāng)前VM的所有VCPU在VMM調(diào)度器中的調(diào)度狀態(tài),分析出處于活躍狀態(tài)的部分VCPU,并且將該虛擬中斷映射到活躍VCPU中,以獲得較低的中斷處理延時。如果同時有多個VCPU處于活躍狀態(tài),則進(jìn)一步考慮各個活躍VCPU的中斷負(fù)載,并且將該中斷映射給當(dāng)前負(fù)載最低的活躍VCPU,進(jìn)一步保證各個VCPU之間的中斷處理負(fù)載均衡,使得SMP結(jié)構(gòu)下VCPU的負(fù)載更加對稱,從而促進(jìn)SMP結(jié)構(gòu)下各個VCPU整體性能的均衡發(fā)揮。
【專利說明】—種基于當(dāng)前VCPU調(diào)度狀態(tài)的動態(tài)中斷均衡映射方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)系統(tǒng)虛擬化、虛擬機(jī)中斷處理、虛擬機(jī)調(diào)度器領(lǐng)域,具體地,涉及一種基于當(dāng)前VCPU調(diào)度狀態(tài)的動態(tài)中斷均衡映射方法。
【背景技術(shù)】
[0002]虛擬化技術(shù)通常將原本需要多臺物理設(shè)備實(shí)現(xiàn)的計算或存儲功能整合到一臺功能相對強(qiáng)大的物理服務(wù)器中去,從而實(shí)現(xiàn)了硬件資源的整合與再分配,提高了硬件設(shè)備的利用率,在云計算以及數(shù)據(jù)中心構(gòu)建中發(fā)揮著非常重要的作用。虛擬機(jī)相對于真實(shí)的物理設(shè)備,體現(xiàn)出很多明顯的優(yōu)勢。首先,云計算與虛擬化技術(shù)允許企業(yè)用戶使用虛擬機(jī)進(jìn)行作業(yè),從而用戶不需要購置一套真實(shí)的IT設(shè)備,有效減少了企業(yè)用戶在維護(hù)IT基礎(chǔ)架構(gòu)上的經(jīng)濟(jì)成本和管理成本。第二,基于鏡像的虛擬機(jī)創(chuàng)建方式靈活實(shí)用,通過鏡像備份技術(shù)能夠很好地處理服務(wù)器災(zāi)備、重建、批量復(fù)制等問題。此外,基于虛擬機(jī)監(jiān)視器(VirtualMachine Monitor, VMM)的虛擬機(jī)管理方式能夠從軟硬件的層面靈活處理物理資源和虛擬資源的映射關(guān)系,提供性能隔離、安全隔離、狀態(tài)監(jiān)控等一系列必要功能。
[0003]虛擬機(jī)監(jiān)視器是指存在于硬件和傳統(tǒng)操作系統(tǒng)之間的一個軟件管理層,其主要作用是管理真實(shí)的物理設(shè)備,例如物理CPU、內(nèi)存等,并將底層的硬件抽象為對應(yīng)的虛擬設(shè)備接口,使多個操作系統(tǒng)得到各自所需的虛擬硬件,從而使他們能夠同時在同一個物理設(shè)備上運(yùn)行。
[0004]物理設(shè)備和虛擬操作系統(tǒng)之間引入的虛擬機(jī)監(jiān)視器作為中間層,不可避免地使得虛擬操作系統(tǒng)的性能受到一定的影響,其中一個重要的方面是增加了中斷的響應(yīng)延時。多個VCPU共享一個物理CPU時,需要對物理CPU進(jìn)行分時復(fù)用,VCPU在VMM的調(diào)度隊(duì)列中的等待時間會反映到該VCPU對事件的響應(yīng)時間中,進(jìn)而使得中斷等事件的響應(yīng)延時嚴(yán)重增加。
[0005]學(xué)術(shù)界目前對于虛擬中斷延時問題的研究,主要集中在單核虛擬機(jī)上。在單核虛擬機(jī)中,由于一個虛擬機(jī)只持有一個VCPU,對中斷延時的解決方法多采用減少物理CPU分時復(fù)用的時間片長度、提高VCPU之間的切換頻率以及增加搶占機(jī)會等手段。這些方法在一定程度上能夠降低調(diào)度延時,但同時也不可避免地增加了 VCPU上下文切換的頻率,引入了額外的系統(tǒng)開銷,從而浪費(fèi)了 CPU的計算能力。對于對稱式多處理器(SymmetricMult1-Processor, SMP)架構(gòu)的虛擬機(jī),目前學(xué)術(shù)界的研究則多集中在VCPU協(xié)同調(diào)度的問題上,即虛擬機(jī)中多個VCPU之間的同步和通信問題,對中斷等事件延時問題的研究則相對較少。
[0006]目前,在虛擬機(jī)監(jiān)視器的實(shí)例,例如KVM與XEN的實(shí)現(xiàn)中,主要采用虛擬中斷處理設(shè)備的方式來處理虛擬機(jī)中的中斷。在XEN中,虛擬機(jī)根據(jù)虛擬化的方式分成兩種類型,即全虛擬化和半虛擬化。在全虛擬化模式下,虛擬操作系統(tǒng)不需要經(jīng)過任何修改,XEN通過虛擬中斷處理平臺來實(shí)現(xiàn)虛擬中斷處理;而在半虛擬化中,虛擬操作系統(tǒng)的內(nèi)核需要被修改以適應(yīng)宿主機(jī)的操作系統(tǒng),XEN通過事件通道機(jī)制實(shí)現(xiàn)中斷和事件處理。KVM則沒有全虛擬化和半虛擬化的區(qū)別,虛擬機(jī)的中斷在KVM中都是通過虛擬中斷處理設(shè)備來處理的。
[0007]在虛擬機(jī)的中斷架構(gòu)中,和物理平臺一樣,每一個VCPU都對應(yīng)了 一個虛擬本地APIC (Advanced Programmable Interrupt Controller)由于接收中斷。虛擬平臺也包含了虛擬I/O APIC、虛擬PIC等虛擬設(shè)備來發(fā)送中斷。和VCPU—樣,虛擬I/O APIC、虛擬本地APIC、虛擬PIC都是VMM維護(hù)的軟件實(shí)體。通常SMP架構(gòu)虛擬機(jī)的虛擬設(shè)備,例如虛擬網(wǎng)卡等調(diào)用虛擬I/O APCI發(fā)出中斷請求,虛擬I/O APIC根據(jù)中斷和VCPU的映射關(guān)系選擇一個VCPU作為中斷的接收者,將中斷請求發(fā)送到該目標(biāo)VCPU的虛擬本地APIC中。虛擬本地APIC進(jìn)一步利用VT-x的事件注入機(jī)制最終完成虛擬中斷的注入。
[0008]需要指出的是,在多VCPU架構(gòu)的虛擬機(jī)中,各個VCPU在調(diào)度器的調(diào)度下對物理CPU進(jìn)行分時復(fù)用,進(jìn)而出現(xiàn)部分VCPU活躍、部分VCPU處于排隊(duì)狀態(tài)的局面?,F(xiàn)有的虛擬機(jī)中斷處理技術(shù)中,當(dāng)虛擬I/O APIC需要將中斷請求映射到VCPU中時,沒有考慮VCPU當(dāng)前的調(diào)度狀態(tài),盲目地為中斷分配VCPU。虛擬中斷被分配給處于調(diào)度等待狀態(tài)的VCPU時,VCPU在調(diào)度隊(duì)列中的等待延時成為了該中斷的響應(yīng)延時的一部分,從而大大提高了中斷請求的響應(yīng)延遲,降低了中斷請求的處理速率。

【發(fā)明內(nèi)容】

[0009]鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問題是提供一種基于當(dāng)前VCPU調(diào)度狀態(tài)和中斷處理負(fù)載分析的動態(tài)中斷均衡映射方法,在中斷映射的同時既考慮了 VCPU作為中斷映射的目標(biāo)結(jié)構(gòu)在VMM的調(diào)度器中的調(diào)度狀態(tài),又考慮了各個VCPU之間的中斷負(fù)載均衡,從而有效地降低了中斷處理延時。
[0010]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于當(dāng)前VCPU調(diào)度狀態(tài)和中斷處理負(fù)載分析的動態(tài)中斷均衡映射方法,其特征在于:當(dāng)SMP虛擬機(jī)的虛擬I/O APIC接收到一個虛擬中斷后,需要將該虛擬中斷映射給虛擬機(jī)的某一個VCPU時,根據(jù)當(dāng)前VM的所有VCPU在VMM調(diào)度器中的調(diào)度狀態(tài),分析出處于活躍狀態(tài)的部分VCPU,并且將該虛擬中斷映射到活躍VCPU中,以獲得較低的中斷處理延時。如果同時有多個VCPU處于活躍狀態(tài),則進(jìn)一步考慮各個活躍VCPU的中斷負(fù)載,并且將該中斷映射給當(dāng)前負(fù)載最低的活躍VCPU,以實(shí)現(xiàn)VCPU中斷負(fù)載平衡。
[0011]本發(fā)明提供一種基于當(dāng)前VCPU調(diào)度狀態(tài)的動態(tài)中斷均衡映射方法,其特征在于,方法包括以下步驟:
[0012](I)每當(dāng)虛擬硬件產(chǎn)生一個虛擬中斷,虛擬I/O APIC接收虛擬中斷,并將虛擬中斷傳送到目標(biāo)VCPU的虛擬本地APIC ;
[0013](2)中斷均衡分配器在虛擬中斷被傳送到目標(biāo)VCPU的虛擬本地APIC之前攔截虛擬中斷;
[0014](3)中斷均衡分配器查看調(diào)度器提供的調(diào)度狀態(tài)信息,獲得處于活躍狀態(tài)的VCPU列表;
[0015](4)中斷均衡分配器根據(jù)處于活躍狀態(tài)的VCPU列表,重新選定目標(biāo)VCPU ;
[0016](5 )中斷均衡分配器將虛擬中斷傳送到步驟(3 )中重新選定的目標(biāo)VCPU的虛擬本地 APIC ;
[0017](6)目標(biāo)VCPU的虛擬本地APIC向目標(biāo)VCPU進(jìn)行虛擬中斷注入。[0018]進(jìn)一步地,步驟(3)中選定目標(biāo)VCPU的方法包括步驟:
[0019](31)獲得處于活躍狀態(tài)的VCPU列表中VCPU的個數(shù);
[0020](32)如果個數(shù)為O,根據(jù)調(diào)度狀態(tài)信息,選定目標(biāo)VCPU ;如果個數(shù)為1,選定處于活躍狀態(tài)的VCPU列表中VCPU為目標(biāo)VCPU ;如果個數(shù)大于I,根據(jù)處于活躍狀態(tài)的VCPU列表中VCPU的中斷負(fù)載,選定目標(biāo)VCPU。
[0021]當(dāng)處于活躍狀態(tài)的VCPU列表中只有一個VCPU,選定該VCPU為目標(biāo)VCPU,將虛擬中斷映射到該活躍VCPU中,以獲得較低的中斷處理延時。
[0022]進(jìn)一步地,步驟(32)中根據(jù)調(diào)度狀態(tài)信息,選定目標(biāo)VCPU的方法包括步驟:
[0023](321)讀取調(diào)度狀態(tài)信息;
[0024](332)選定所有VCPU中預(yù)測最快進(jìn)入活躍狀態(tài)的VCPU為目標(biāo)VCPU。
[0025]當(dāng)處于活躍狀態(tài)的VCPU列表中沒有VCPU,也就是沒有VCPU處于活躍狀態(tài),選定預(yù)測最快進(jìn)入活躍狀態(tài)的VCPU為目標(biāo)VCPU,將虛擬中斷映射到該活躍VCPU中,以獲得較低的中斷處理延時。
[0026]進(jìn)一步地,步驟(332)中預(yù)測最快進(jìn)入活躍狀態(tài)的VCPU的依據(jù)是VCPU處于空閑狀態(tài)。
[0027]處于空閑狀態(tài)的VCPU可能最快進(jìn)入活躍狀態(tài),這是因?yàn)镃REDIT調(diào)度器設(shè)計允許IDLE狀態(tài)的VCPU在需要應(yīng)答事件時進(jìn)行搶占,因此選定處于空閑狀態(tài)的VCPU為目標(biāo)VCPU,將虛擬中斷映射到該VCPU中,以獲得較低的中斷處理延時。
[0028]進(jìn)一步地,如果所述VCPU均未處于空閑狀態(tài),步驟(332)中預(yù)測最快進(jìn)入活躍狀態(tài)的VCPU的依據(jù)VCPU在等待隊(duì)列中位置與剩余信用值。
[0029]對于所有的VCPU,優(yōu)先考慮其在各自的等待隊(duì)列中所處的位置,越是靠近隊(duì)首的VCPU就越有可能最快進(jìn)入活躍狀態(tài)。然后,當(dāng)有相同排位的VCPU時,再考慮VCPU的剩余信用值,選擇剩余信用值大的作為目標(biāo)VCPU,以獲得較低的中斷處理延時。
[0030]進(jìn)一步地,步驟(32)中根據(jù)處于活躍狀態(tài)的VCPU列表中VCPU的中斷負(fù)載,選定目標(biāo)VCPU的方法包括步驟:
[0031](323)讀取當(dāng)前虛擬機(jī)結(jié)構(gòu)體維護(hù)的VCPU中斷負(fù)載表;
[0032](334)比較處于活躍狀態(tài)的VCPU列表中VCPU的中斷負(fù)載,選定中斷負(fù)載最小的VCPU為目標(biāo)VCPU。
[0033]當(dāng)處于活躍狀態(tài)的VCPU列表中有多個VCPU,將虛擬中斷映射給當(dāng)前中斷負(fù)載最低的活躍VCPU,在獲得較低的中斷處理延時的同時實(shí)現(xiàn)VCPU中斷負(fù)載平衡。
[0034]進(jìn)一步地,步驟(I)中虛擬硬件包括為虛擬設(shè)備和/或經(jīng)VMM中斷處理的物理設(shè)備。
[0035]進(jìn)一步地,步驟(5)中通過VT-X的事件注入機(jī)制完成虛擬中斷注入。
[0036]進(jìn)一步地,在虛擬機(jī)SHARED_INF0結(jié)構(gòu)的基礎(chǔ)上增加成員變量sched_info,用于記錄VCPU的調(diào)度狀態(tài)。
[0037]進(jìn)一步地,每當(dāng)調(diào)度器發(fā)生一次VCPU切換,被換入的VCPU和被換出的VCPU完成上下文交換后,被換入的VCPU成為活躍VCPU,活躍VCPU所屬的虛擬機(jī)SHARED_INF0結(jié)構(gòu)的schedjnfo成員變量標(biāo)記為活躍;被換出的VCPU的所屬的虛擬機(jī)SHARED_INF0結(jié)構(gòu)的sched_info成員變量標(biāo)記為等待。[0038]與現(xiàn)有技術(shù)相比,本發(fā)明提供的基于當(dāng)前VCPU活躍狀態(tài)的動態(tài)中斷映射方法具有以下有益的技術(shù)效果:
[0039](I)根據(jù)當(dāng)前VCPU的調(diào)度狀態(tài),將虛擬中斷映射到活躍的VCPU,有效減少了因?yàn)檎{(diào)度延時而產(chǎn)生的中斷請求處理延時,從而保證了虛擬中斷及時注入目標(biāo)VCPU中,獲得較低的中斷處理延時,提高了中斷響應(yīng)速度。
[0040](2)當(dāng)多個VCPU處于活躍狀態(tài)時,選定中斷負(fù)載最小的VCPU為目標(biāo)VCPU,進(jìn)一步保證各個VCPU之間的中斷處理負(fù)載均衡,使得SMP結(jié)構(gòu)下VCPU的負(fù)載更加對稱,從而促進(jìn)SMP結(jié)構(gòu)下各個VCPU整體性能的均衡發(fā)揮。
[0041](3)由于本發(fā)明的方案并沒有要求減小調(diào)度周期的時間片長度、增加VCPU上下文切換頻率或在VCPU之間引入新的搶占機(jī)制,因此,本發(fā)明在有效減少中斷響應(yīng)延時的同時,沒有引入額外的計算能力的浪費(fèi),有利于計算密集型負(fù)載的運(yùn)行,保證了較高的CPU利用率。
[0042](4)由于中斷在操作系統(tǒng)中具有很重要的作用,提高中斷處理速率能夠使得虛擬機(jī)的整體響應(yīng)能力也得到一定程度的提高。
【專利附圖】

【附圖說明】
[0043]圖1是物理平臺上的中斷處理結(jié)構(gòu)示意圖;
[0044]圖2是現(xiàn)有的SMP虛擬機(jī)技術(shù)中虛擬中斷處理器的結(jié)構(gòu)示意圖;
[0045]圖3是本發(fā)明的一個實(shí)施例的虛擬中斷處理器的示意圖;
[0046]圖4是圖3所示的虛擬中斷處理器的虛擬中斷映射的建立過程示意圖。
【具體實(shí)施方式】
[0047]以下將結(jié)合附圖對本發(fā)明的構(gòu)思、具體結(jié)構(gòu)及產(chǎn)生的技術(shù)效果作進(jìn)一步說明,以充分地了解本發(fā)明的目的、特征和效果。
[0048]圖1是物理平臺上的中斷處理結(jié)構(gòu)示意圖。在物理平臺上,I/O設(shè)備首先通過中斷控制器(I/O APIC或者PIC)發(fā)出中斷請求,這個中斷請求通過PCI總線發(fā)送到系統(tǒng)總線上,最后目標(biāo)CPU的本地APIC部件接收此中斷,目標(biāo)CPU開始處理該中斷。
[0049]圖2是現(xiàn)有的SMP虛擬機(jī)技術(shù)中虛擬中斷處理器的結(jié)構(gòu)示意圖。在虛擬機(jī)的環(huán)境下,VMM也需要為客戶機(jī)操作系統(tǒng)呈現(xiàn)一個與物理中斷架構(gòu)類似的虛擬中斷架構(gòu)。和在真實(shí)的物理平臺上一樣,在虛擬SMP架構(gòu)下,每一個VCPU也對應(yīng)了 一個虛擬本地APIC用于接收中斷,而VMM則提供虛擬I/O APIC用于發(fā)送中斷。當(dāng)某個虛擬設(shè)備,例如虛擬網(wǎng)卡等需要發(fā)送一個中斷時,虛擬設(shè)備首先調(diào)用虛擬I/O APIC提供的接口發(fā)送中斷。虛擬I/O APIC根據(jù)得到的中斷請求,選擇一個VCPU作為該中斷的處理者,將中斷交給該VCPU對應(yīng)的本地APIC0最后,虛擬本地APIC利用VT-x的事件注入機(jī)制將中斷注入到對應(yīng)的目的VCPU中,由VCPU處理中斷。類似于VCPU,虛擬中斷處理器中涉及到的虛擬本地APIC、虛擬I/O APIC、虛擬PIC等也都是VMM維護(hù)的軟件實(shí)體。
[0050]圖3是本發(fā)明的一個實(shí)施例的虛擬中斷處理器的示意圖。與現(xiàn)有的虛擬中斷處理器相比,本實(shí)施例中的虛擬中斷處理器中增加了中斷均衡分配器,中斷均衡分配器處于原有的虛擬I/O APIC與虛擬本地APIC之間。[0051]中斷均衡分配器從VMM的調(diào)度器中讀取到VCPU的基本調(diào)度信息,分析出當(dāng)前時刻虛擬機(jī)的VCPU的調(diào)度狀態(tài),即哪些VCPU處于活躍狀態(tài),哪些VCPU處于調(diào)度等待狀態(tài)。當(dāng)虛擬I/O APIC需要發(fā)送一個中斷請求時,中斷均衡分配器截獲此中斷請求,根據(jù)已有的知識代替虛擬I/o APIC選擇處理中斷的目標(biāo)VCPU,進(jìn)而將該中斷發(fā)送至目標(biāo)VCPU的虛擬本地APIC,發(fā)起中斷注入。
[0052]圖4是圖3所示的虛擬中斷處理器的虛擬中斷映射的建立過程示意圖。圖中具體說明了中斷均衡分配器的工作過程。當(dāng)中斷均衡分配器需要處理一個中斷請求時,中斷均衡分配器首先基于從調(diào)度器得到的調(diào)度信息來分析當(dāng)前虛擬機(jī)的各個VCPU的調(diào)度和中斷負(fù)載情況。
[0053]若當(dāng)前只存在唯一的活躍VCPU,即該虛擬機(jī)的VCPU中只有一個VCPU目前取得了實(shí)際的運(yùn)行權(quán),在物理CPU上運(yùn)行,則將此VCPU作為目標(biāo)VCPU記錄下來。
[0054]若當(dāng)前沒有VCPU處于活躍狀態(tài),即虛擬機(jī)的所有VCPU均處在調(diào)度器的等待隊(duì)列中,則中斷均衡分配器對各個VCPU進(jìn)入活躍狀態(tài)的可能性進(jìn)行推測,選定最快能夠進(jìn)入活躍狀態(tài)的VCPU作為目標(biāo)VCPU。推測的依據(jù)來自調(diào)度器提供的信息,例如VCPU是否處于IDLE狀態(tài),CREDIT調(diào)度器下各個VCPU的剩余信用值等。一般來說,在CREDIT調(diào)度器中,處于IDLE狀態(tài)的VCPU是最合適的目標(biāo)選擇,因?yàn)镃REDIT調(diào)度器設(shè)計允許IDLE狀態(tài)的VCPU在需要應(yīng)答事件時進(jìn)行搶占。對于所有的VCPU,優(yōu)先考慮其在各自的等待隊(duì)列中所處的位置,越是靠近隊(duì)首的VCPU就越有可能最快進(jìn)入活躍狀態(tài)。然后,當(dāng)有相同排位的VCPU時,再考慮VCPU的剩余信用值,選擇剩余信用值大的作為目標(biāo)VCPU,以獲得較低的中斷處理延時。
[0055]若當(dāng)前有多個VCPU處于活躍狀態(tài),中斷均衡分配器依次讀取各個處于活躍狀態(tài)的VCPU的中斷負(fù)載情況,選取最小負(fù)載的VCPU作為目標(biāo)VCPU。確定目標(biāo)VCPU之后,中斷均衡分配器繼續(xù)中斷處理流程,代替虛擬I/O APIC發(fā)起中斷注入。
[0056]本發(fā)明基于當(dāng)前VCPU活躍狀態(tài)和VCPU中斷處理負(fù)載分析進(jìn)行中斷均衡分配的動態(tài)中斷映射方法具體步驟如下:
[0057]步驟1、每當(dāng)VMM的VCPU調(diào)度器發(fā)生一次有效的VCPU切換,被換入的VCPU和被換出的VCPU完成上下文交換后,被換入的VCPU成為活躍VCPU,真正在物理CPU上運(yùn)行,此時該VCPU所屬的虛擬機(jī)結(jié)構(gòu)體根據(jù)VCPU的ID將被換入的VCPU狀態(tài)標(biāo)記為活躍,同時把被換出的VCPU的狀態(tài)標(biāo)記為等待。
[0058]步驟2、每當(dāng)虛擬設(shè)備產(chǎn)生一個虛擬中斷需要處理時,在該虛擬中斷被虛擬I/OAPIC映射到VCPU之前攔截該虛擬中斷,同時查看當(dāng)前虛擬機(jī)的VCPU狀態(tài)表,得出處于活躍狀態(tài)的VCPU列表。若活躍VCPU列表中只有一個VCPU,則選中其為目標(biāo)VCPU,轉(zhuǎn)步驟5 ;若當(dāng)前時刻沒有VCPU處于活躍狀態(tài),轉(zhuǎn)步驟3 ;若有多于一個VCPU處于活躍狀態(tài),轉(zhuǎn)步驟4。
[0059]步驟3、當(dāng)前時刻沒有VCPU處于活躍狀態(tài),則根據(jù)調(diào)度器提供的各個VCPU調(diào)度信息推測最早能夠進(jìn)入活躍狀態(tài)的VCPU,選中其為目標(biāo)VCPU,轉(zhuǎn)步驟5.[0060]步驟4、當(dāng)存在多個處于活躍狀態(tài)的VCPU時,則進(jìn)一步讀取當(dāng)前虛擬機(jī)結(jié)構(gòu)體維護(hù)的VCPU中斷負(fù)載表,比較各個活躍VCPU的當(dāng)前中斷負(fù)載,選取負(fù)載相對最小的VCPU作為目標(biāo)VCPU。[0061]步驟5、更新目標(biāo)VCPU的中斷負(fù)載狀態(tài),并且將當(dāng)前虛擬中斷映射到動態(tài)選取的目標(biāo)VCPU中,最后繼續(xù)完成中斷注入。
[0062]具體地,本發(fā)明的中斷映射方案具體實(shí)現(xiàn)步驟主要分為兩部分,第一部分步驟如下:
[0063]步驟1、在原有虛擬機(jī)的SHARED_INF0結(jié)構(gòu)的基礎(chǔ)上增加一個新的成員變量sched_info,用于記錄VCPU的調(diào)度狀態(tài)。該步驟的主要代碼實(shí)現(xiàn)如下:
[0064]
【權(quán)利要求】
1.一種基于當(dāng)前VCPU調(diào)度狀態(tài)的動態(tài)中斷均衡映射方法,其特征在于,所述方法包括以下步驟: (1)每當(dāng)虛擬硬件產(chǎn)生一個虛擬中斷,虛擬I/OAPIC接收所述虛擬中斷,并將所述虛擬中斷傳送到目標(biāo)VCPU的虛擬本地APIC ; (2)中斷均衡分配器在所述虛擬中斷被傳送到所述目標(biāo)VCPU的虛擬本地APIC之前攔截所述虛擬中斷; (3)所述中斷均衡分配器分析調(diào)度器提供的調(diào)度狀態(tài)信息,獲得處于活躍狀態(tài)的VCPU列表; (4)所述中斷均衡分配器根據(jù)所述處于活躍狀態(tài)的VCPU列表,重新選定目標(biāo)VCPU; (5)所述中斷均衡分配器將所述虛擬中斷傳送到步驟(3)中重新選定的目標(biāo)VCPU的虛擬本地APIC ; (6)所述目標(biāo)VCPU的虛擬本地APIC向所述目標(biāo)VCPU進(jìn)行所述虛擬中斷注入。
2.如權(quán)利要求1所述的方法,其特征在于,步驟(3)中選定目標(biāo)VCPU的方法包括步驟: (31)獲得所述處于活躍狀態(tài)的VCPU列表中VCPU的個數(shù); (32)如果所述個數(shù)為O,根據(jù)所述調(diào)度狀態(tài)信息,選定所述目標(biāo)VCPU;如果所述個數(shù)為I,選定所述處于活躍狀態(tài)的VCPU列表中VCPU為所述目標(biāo)VCPU ;如果所述個數(shù)大于I,根據(jù)所述處于活躍狀態(tài)的 VCPU列表中VCPU的中斷負(fù)載,選定所述目標(biāo)VCPU。
3.如權(quán)利要求2所述的方法,其特征在于,步驟(32)中根據(jù)調(diào)度狀態(tài)信息,選定所述目標(biāo)VCPU的方法包括步驟: (321)讀取所述調(diào)度狀態(tài)信息; (332)選定所有VCPU中預(yù)測最快進(jìn)入活躍狀態(tài)的VCPU為所述目標(biāo)VCPU。
4.如權(quán)利要求3所述的方法,其特征在于,步驟(332)中預(yù)測最快進(jìn)入活躍狀態(tài)的VCPU的依據(jù)是VCPU處于空閑狀態(tài)。
5.如權(quán)利要求3所述的方法,其特征在于,如果所述VCPU均未處于空閑狀態(tài),步驟(332)中預(yù)測最快進(jìn)入活躍狀態(tài)的VCPU的依據(jù)是VCPU在等待隊(duì)列中位置與剩余信用值。
6.如權(quán)利要求2所述的方法,其特征在于,步驟(32)中根據(jù)所述處于活躍狀態(tài)的VCPU列表中VCPU的中斷負(fù)載,選定目標(biāo)VCPU的方法包括步驟: (323)讀取當(dāng)前虛擬機(jī)結(jié)構(gòu)體維護(hù)的VCPU中斷負(fù)載表; (334)比較所述處于活躍狀態(tài)的VCPU列表中VCPU的中斷負(fù)載,選定中斷負(fù)載最小的VCPU為目標(biāo)VCPU。
7.如權(quán)利要求1所述的方法,其特征在于,步驟(1)中所述虛擬硬件包括為虛擬設(shè)備和/或經(jīng)VMM中斷處理的物理設(shè)備。
8.如權(quán)利要求1所述的方法,其特征在于,步驟(5)中通過VT-x的事件注入機(jī)制完成所述虛擬中斷注入。
9.如權(quán)利要求1所述的方法,其特征在于,在虛擬機(jī)SHARED_INFO結(jié)構(gòu)的基礎(chǔ)上增加成員變量sched_info,用于記錄VCPU的調(diào)度狀態(tài)。
10.如權(quán)利要求9所述的方法,其特征在于,每當(dāng)調(diào)度器發(fā)生一次VCPU切換,被換入的VCPU和被換出的VCPU完成上下文交換后,被換入的VCPU成為活躍VCPU,所述活躍VCPU所屬的虛擬機(jī)SHARED_INFO結(jié)構(gòu)的schedjnfo成員變量標(biāo)記為活躍;被換出的VCPU的所屬的虛擬機(jī)SHARED_INFO 結(jié)構(gòu)的sched_info成員變量標(biāo)記為等待。
【文檔編號】G06F9/455GK103744716SQ201410018108
【公開日】2014年4月23日 申請日期:2014年1月15日 優(yōu)先權(quán)日:2014年1月15日
【發(fā)明者】管海兵, 李健, 馬汝輝, 朱敏君, 周凡夫 申請人:上海交通大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
公主岭市| 宜君县| 象山县| 马边| 濮阳县| 雷波县| 敦化市| 华容县| 蓝田县| 中阳县| 兰西县| 博罗县| 边坝县| 青州市| 西华县| 东城区| 司法| 扶风县| 闽清县| 全南县| 二连浩特市| 鹿邑县| 南宫市| 九龙县| 仪征市| 临桂县| 景东| 泊头市| 崇左市| 潜江市| 师宗县| 新巴尔虎右旗| 无极县| 遵化市| 金昌市| 武汉市| 株洲市| 阿荣旗| 景宁| 镇雄县| 河源市|