本發明專利技術實施例提供了一種中斷信息的處理方法、虛擬機監控器及中斷控制器,該方法包括:虛擬機監控器接收Q個第一中斷信息,依據每個第一中斷信息的中斷號,從特定寄存器中獲得對應的中斷處理函數;調用獲得的中斷處理函數,以獲得M個第二中斷信息,M個第二中斷信息為Q個第一中斷信息中需要發送給虛擬機對應的處理器的中斷信息;獲得M個第二中斷信息對應的虛擬機的標識;向虛擬CPU中斷接口寫入M個第二中斷信息以及M個第二中斷信息對應的虛擬機的標識,以便于虛擬CPU中斷接口在確定M個第二中斷信息對應的虛擬機運行后,向M個第二中斷信息對應的虛擬機對應的處理器發送M個第二中斷信息。本發明專利技術實施例提供的技術方案用以實現提高中斷信息的處理效率。
【技術實現步驟摘要】
【專利說明】
本專利技術涉及信息處理技術,尤其涉及一種中斷信息的處理方法、虛擬機監控器及中斷控制器。【
技術介紹
】現有技術中,計算機的中央處理器(Central Processing Unit, CPU)在虛擬機監控器模式下,該CPU作為虛擬機監控器向虛擬機注入中斷信息的方法是:寄存器的指針可以指向不同的中斷向量表的地址,若該指針指向虛擬機監控器對應的中斷向量表的地址,則虛擬機監控器可以使用該中斷向量表中包含的中斷處理函數,若該指針指向虛擬機對應的中斷向量表的地址,則虛擬機可以使用該中斷向量表中包含的中斷處理函數,若該指針指向計算機的操作系統對應的中斷向量表的地址,則計算機的操作系統可以使用該中斷向量表中包含的中斷處理函數。當虛擬機正在運行時,虛擬機調用中斷向量表中的中斷處理函數對中斷信息進行處理,若虛擬機監控器需要向該虛擬機注入中斷信息,虛擬機需要先停止運行,退出調用中斷向量表中的中斷處理函數,然后寄存器的指針指向虛擬機監控器對應的中斷向量表的地址,使得虛擬機監控器可以調用該中斷向量表中的中斷處理函數,以實現向虛擬機注入中斷信息。然而,由于虛擬機控制器每次向虛擬機注入一個中斷信息,都要發生上述虛擬機的退出事件,因此,虛擬機控制器一次只能向虛擬機注入一個中斷信息,當中斷信息數量較大時,將引發過多的虛擬機退出事件,增加了額外的性能開銷,導致中斷信息的處理效率較低。【
技術實現思路
】本專利技術實施例提供了一種中斷信息的處理方法、虛擬機監控器及中斷控制器,以實現提高中斷信息的處理效率。第一方面,本專利技術實施例提供了一種中斷信息的處理方法,所述方法應用于包括中斷控制器、虛擬機監控器、特定寄存器和至少一個虛擬機的系統,其中,所述中斷控制器包括至少一個虛擬CPU中斷接口,所述特定寄存器中存儲虛擬機監控器中斷向量表,所述虛擬機監控器中斷向量表包括用于虛擬機監控器調用的中斷處理函數,所述中斷處理函數中包含中斷號;包括:所述虛擬機監控器接收Q個第一中斷信息,Q為大于或者等于I的整數;所述虛擬機監控器依據每個所述第一中斷信息的中斷號,從所述特定寄存器中獲得對應的中斷處理函數;所述虛擬機監控器調用獲得的所述中斷處理函數,以獲得M個第二中斷信息,所述M個第二中斷信息為所述Q個第一中斷信息中需要發送給虛擬機對應的處理器的中斷信息;M為小于或者等于Q的正整數;所述虛擬機監控器獲得所述M個第二中斷信息對應的虛擬機的標識;所述虛擬機監控器向所述虛擬CPU中斷接口寫入所述M個第二中斷信息以及所述M個第二中斷信息對應的虛擬機的標識,以便于所述虛擬CPU中斷接口在確定所述M個第二中斷信息對應的虛擬機運行后,向所述M個第二中斷信息對應的虛擬機對應的處理器發送所述M個第二中斷信息。在第一方面的第一種可能的實現方式中,所述虛擬機監控器向所述虛擬CPU中斷接口寫入所述M個第二中斷信息以及所述M個第二中斷信息對應的虛擬機的標識,包括:所述虛擬機監控器對所述M個第二中斷信息進行緩存;所述虛擬機監控器檢測所述虛擬CPU中斷接口中當前存儲的第三中斷信息的數目K,K為大于或等于O的整數;所述虛擬機監控器依據所述第三中斷信息的數目K和預設的所述虛擬CPU中斷接口的中斷數目閾值P,從所述M個第二中斷信息中獲得優先級最高的N個第二中斷信息,P為大于或等于I的整數,N小于或等于P與K的差值;所述虛擬機監控器向所述虛擬CPU中斷接口寫入所述N個第二中斷信息和所述N個第二中斷信息對應的虛擬機的標識,N小于或等于P與K的差值。結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,每個所述虛擬CPU中斷接口包括第一寄存器和第二寄存器;所述虛擬機監控器向所述虛擬CPU中斷接口寫入所述N個第二中斷信息和所述N個第二中斷信息對應的虛擬機的標識,包括:所述虛擬機監控器向所述第一寄存器寫入所述N個第二中斷信息,以使得所述第一寄存器按照優先級由高到低的順序對所述N個第二中斷信息進行排序,以獲得排序結果,以及依據所述排序結果,將所述N個第二中斷信息中優先級最高的R個第二中斷信息寫入所述第二寄存器,所述R個第二中斷信息用于所述虛擬CPU中斷接口在確定所述虛擬機的標識對應的虛擬機運行后,向所述虛擬機對應的處理器發送所述R個第二中斷信息,R為小于或等于N的正整數。在第一方面的第三種可能的實現方式中,所述虛擬機監控器調用獲得的所述中斷處理函數,以獲得M個第二中斷信息,包括:所述虛擬機監控器調用獲得的所述中斷處理函數,以使得被調用的所述中斷處理函數開始運行,以及檢測每個所述第一中斷信息對應的操作位置和每個所述虛擬機的位置信息,以獲得所述操作位置位于所述虛擬機的位置信息內的M個所述第一中斷信息;所述虛擬機監控器將獲得的M個所述第一中斷信息作為所述M個第二中斷信息。第二方面,本專利技術實施例還提供了一種中斷信息的處理方法,所述方法應用于包括中斷控制器和一個虛擬機的系統,其中,所述中斷控制器包括一個虛擬CPU中斷接口和中斷響應單元;包括:所述中斷響應單元接收物理設備發送的Q個第一中斷信息,Q為大于或者等于I的整數;所述中斷響應單元向所述虛擬CPU中斷接口寫入所述Q個中斷信息,以使得所述虛擬CPU中斷接口在確定所述虛擬機運行后,向所述虛擬機對應的處理器發送所述Q個中斷息。在第二方面的第一種可能的實現方式中,所述虛擬CPU中斷接口包括第一寄存器和第二寄存器;所述中斷響應單元向所述虛擬CPU中斷接口寫入所述Q個中斷信息,包括:所述中斷響應單元向所述第一寄存器寫入所述Q個中斷信息,以使得所述第一寄存器按照優先級由高到低的順序對所述Q個中斷信息進行排序,以獲得排序結果,以及依據所述排序結果,將所述Q個中斷信息中優先級最高的R個中斷信息寫入所述第二寄存器,所述R個中斷信息用于所述虛擬CPU中斷接口在確定所述虛擬機運行后,向所述虛擬機對應的處理器發送所述R個中斷信息,R為小于或等于N的正整數。第三方面,本專利技術實施例提供了一種虛擬機監控器,應用于包括中斷控制器、所述虛擬機監控器、特定寄存器和至少一個虛擬機的系統,其中,所述中斷控制器包括至少一個虛擬CPU中斷接口,所述特定寄存器中存儲虛擬機監控器中斷向量表,所述虛擬機監控器中斷向量表包括用于虛擬機監控器調用的中斷處理函數,所述中斷處理函數中包含中斷號;包括:接收器,用于接收Q個第一中斷信息,Q為大于或者等于I的整數;虛擬中斷控制器,用于依據每個所述第一中斷信息的中斷號,從所述特定寄存器中獲得對應的中斷處理函數;所述虛擬中斷控制器,還用于調用獲得的所述中斷處理函數,以獲得M個第二中斷信息,所述M個第二中斷信息為所述Q個第一中斷信息中需要發送給虛擬機對應的處理器的中斷信息;M為小于或者等于Q的正整數;所述虛擬中斷控制器,還用于獲得所述M個第二中斷信息對應的虛擬機的標識;所述虛擬中斷控制器,還用于向所述虛擬CPU中斷接口寫入所述M個第二中斷信息以及所述M個第二中斷信息對應的虛擬機的標識,以便于所述虛擬CPU中斷接口在確定所述M個第二中斷信息對應的虛擬機運行后,向所述M個第二中斷信息對應的虛擬機對應的處理器發送所述M個第二中斷信息。在第三方面的第一種可能的實現方式中,所述虛擬中斷控制器具體用于:對所述M個第二中斷信息進行緩存;檢測所述虛擬CPU中本文檔來自技高網...
【技術保護點】
一種中斷信息的處理方法,其特征在于,所述方法應用于包括中斷控制器、虛擬機監控器、特定寄存器和至少一個虛擬機的系統,其中,所述中斷控制器包括至少一個虛擬CPU中斷接口,所述特定寄存器中存儲虛擬機監控器中斷向量表,所述虛擬機監控器中斷向量表包括用于虛擬機監控器調用的中斷處理函數,所述中斷處理函數中包含中斷號;所述方法包括:所述虛擬機監控器接收Q個第一中斷信息,Q為大于或者等于1的整數;所述虛擬機監控器依據每個所述第一中斷信息的中斷號,從所述特定寄存器中獲得對應的中斷處理函數;所述虛擬機監控器調用獲得的所述中斷處理函數,以獲得M個第二中斷信息,所述M個第二中斷信息為所述Q個第一中斷信息中需要發送給虛擬機對應的處理器的中斷信息;M為小于或者等于Q的正整數;所述虛擬機監控器獲得所述M個第二中斷信息對應的虛擬機的標識;所述虛擬機監控器向所述虛擬CPU中斷接口寫入所述M個第二中斷信息以及所述M個第二中斷信息對應的虛擬機的標識,以便于所述虛擬CPU中斷接口在確定所述M個第二中斷信息對應的虛擬機運行后,向所述M個第二中斷信息對應的虛擬機對應的處理器發送所述M個第二中斷信息。
【技術特征摘要】
【專利技術屬性】
技術研發人員:李博,
申請(專利權)人:華為技術有限公司,北京航空航天大學,
類型:發明
國別省市:廣東;44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。